为了精通vim编辑工具命令,总结自己平时用的vim工具命令(紫色),还扩展自己没用到,读者可根据自身习惯进行取舍。
一、Vim打开、搜索、保存、退出指令
1、打开文件跳到指定行(行号超过文本的行数,默认跳到文本的最后) --> vim +文件的行号 file 或者 vim file +文件的行号 (在搜索文件中的关键字的位置后使用,搜索命令:grep -w 关键字 * -rn)
2、打开文件跳到指定关键字的第一个的位置 --> vim file /关键字
3、打开文件后台运行vim并回到控制端 --> Ctrl+z 查看控制台Vim操作的后台数 --> jobs 控制台回到vim编辑器 --> fg 数字编号(jobs命令可以查看到vim打开不同文件的数字编号)
4、同一个vim窗口打开不同的文件 --> :sp /路径/文件名(Enter) 使用用sp命令后,在两文件间进行切换 --> Ctrl +ww (需按两次w)
5、搜索关键字光标跳到下一个关键字位置 --> 在光标在关键字处使用 Ctrl+* 或者在vim下面的编辑栏输入/关键字 (再按n,表示重复上次操作,即光标再跳到下一个关键字位置;再按N,表示重复上次相反操作,即光标跳到上一个关键字位置)
6、搜索关键字光标跳到上一个关键字位置 --> 在vim下面的编辑栏输入?关键字(n和N功能同第5条一样)
7、移动光标(上、下、左、右) --> k、j、h、l或者对应键盘上、下、左、右按键
8、光标移到当页的第一行的第一个字符 --> H
9、光标移到当页的中间行的第一个字符 --> M
10、光标移到当页的最后一行的第一个字符 --> L
11、在某行向右移动n个字符 --> n+空格
13、退出编辑 --> Esc
14、保存 --> :w(Enter)
15、关闭 --> :q(加!强制退出)(Enter)
15、保存关闭 --> :wq(wq!保存强制退出)(Enter)
二、Vim光标移动指令
1、向下移动一页 --> Ctrl+f
2、向下移动半页 --> Ctrl+d
3、向上移动一页 --> Ctrl+b
4、向上移动半页 --> Ctrl+u
5、光标向下移动n行 --> n(Enter)
6、从文件头开始计算,移动到指定行 --> :行数(Enter) 或者行数+gg
7、从文件头开始计算,移动文件的开始行第一个字符 --> gg
8、从文件头开始计算,移动文件的最后一行第一个字符 --> GG
9、把文件n1行到n2行中字符串str1替换成字符串str2 --> :20,50s/str1/str2/g
10、把文件中字符串str1替换成字符串str2 --> :1,$s/str1/str2/g或者:%s/str1/str2/g
11、将光标所在行与光标的下一行进行合并 --> J
12、返回改动的上一次状态 --> u(与u相反的操作,即前进:Ctrl+r)
三、Vim中的编辑指令
1、在光标字母前进行插入编辑 --> i
2、在光标所在行最前面进行插入编辑 --> I
3、在光标字母后进行插入编辑 --> a
4、在光标所在行最后面后进行插入编辑 --> A
5、在光标的下一行进行编辑 --> o
6、在光标的上一行进行编辑(大写) --> O
7、替换光标处的字母 --> r
8、依次替换光标处以及光标后的字母 --> R
9、批量复制(剪切) --> 复制行数+yy(dd)
10、单行复制(剪切) --> yy(dd)
11、删除 --> x(向后删除一个字符) 或者X(向前删除一个字符)
12、删除n个字符 --> nx(向后删除n个字符) 或者nX(向前删除n个字符)
13、删除光标到文件第一行所有的数据(包括光标这一行) --> d1G (复制操作与它相类似:y1G)
14、删除光标到文件最后一行所有的数据(包括光标这一行) --> dG(复制操作与它相类似:dG)
15、粘贴 --> p(粘贴到光标下一行)或者P(粘贴到光标上一行)
16、删除光标处到该行的最后一个字符 --> d$(复制操作与它相类似:y$)
17、删除光标处到该行的第一个字符 --> d0(复制操作与它相类似:y0)
四、Vim其他命令
1、暂时离开Vim编辑工具 --> :! + 空格 +指令(比如想查看/opt目录有什么文件,:! ls /opt)
2、显示行号 --> :set nu(取消显示行号 ::set nonu)
3、将n1行到n2行内容保存为/opt目录下的filename文件 --> :n1,n2 w /opt/filename
4、将/opt目录filename文件的内容追加到光标后面 --> :r /opt/filename
5、将vim中的内容另存为/opt目录的filename文件 --> :w /opt/filename
6、以文件最后的内容状态保存并退出 --> ZZ(大写)
18)如果复制过来的代码没有对齐,可以用【:起始行,结束行 <】整体左移,(或者用' < '符号 整体向右移动)
输入指令,移动297行到301行,结果就会跟下面的if对齐了。
19)搜索关键字:【/关键字】,可以用n(或者N)从当前关键字焦点切换到下(上)该关键字的焦点。
20)要在文本多行的某列位置添加同样的文本(下图实现在选中行的首部增加文本),首先ctrl+v进入可视化状态,然后上下移动光标(选各种要增加的行),再按shift+i进入编辑状态,输入要增加的内容,最后按两次Esc退出即完成。
21)如果终端的窗口不够用,可以用ctrl+shift+t来增加终端的数量;
22)
有