对于经常在linux端编程的人而言,vim的重要性不言而喻。最近在看《鸟哥的linux私房菜》,刚好看到vim这里,记录一下常用的一些命令。
首先要知道vim一共含有命令行模式,一般命令模式,编辑模式三种工作模式,这三种模式中,命令行模式和一般命令行模式之间可以互相切换,一般命令模式和编辑模式之间又可以互相切换。下面一张图清晰的表达这个点
下面根据我们编辑文本的经常使用的功能,来归纳总结一下常用的命令,
移动光标(一般命令模式下)
方向键可以移动,不过程序员没有这么勤快,hjkl会更加方便
- h:向左移动一格
- j:向下移动一格
- k:向上移动一格
- l:向右移动一格
- n+space:表示光标移动n个字符距离,例如 20+空格,光标会移动20个字符距离
- 0:移动到这一行最前面的字符
- $:移动到这一行最后面的字符
- G(注意是大写):移动到整个最后一行
- nG:数字+G,移动到文件的指定的行
- gg:移动到文件的第一行,相当于 1G
- n+Enter:光标会向下移动n行
- Ctrl+f:向下翻一页
- Ctrl+b:向上翻一页
查找和替换(一般命令模式)
- /word:反斜杠/+word,从光标处向下查找字符串word
- ?word:从光标处向上寻找字符串word
- n:重复前一个查找工作,例如 /word之后接n,直接跳到下一个word所在处
- N:以相反的方向查找下一个
- :n1,n2s/word1/word2/g:n1行到n2行之间把word1替换为word2
- :1,$s/word1/word2/gc:1到最后一行之间把word1替换为word2,并返回用户一个提示
删除(一般命令模式下)
- x:向后删除一个字符,也就是光标所占的那个字符
- X:向前删除一个字符,光标前面的那个字符
- nx:数字+删除,表示向后删除n个字符
- dd:删除(剪切)光标所在的一整行
- ndd:删除光标开始向下的n行
- d1G:删除(剪切)第一行到最后一行的所有文本
- dG:删除(剪切)光标所在行到最后一行的所有文本
- d$:删除(剪切)光标所在处到该行最后的一个字符
- d0:删除(剪切)光标所在处到该行的第一个字符
复制(一般命令模式下)
- yy:复制光标所在的行
- nyy:复制光标向下的n行
- y1G:复制第一行到最后一行的所有文本
- yG:复制光标所在行到最后一行的所有文本
- y$:复制光标所在处到该行最后的一个字符
- y0:复制光标所在处到该行的第一个字符
粘贴(一般命令模式下)
- p:从光标的下一行开始粘贴
- P(大写):从光标这行开始粘贴,原来的数据都会被顺移到粘贴内容的后面
- J:光标所在行和下面一行结合成同一行
其他(一般命令模式下)
- u:恢复上一步
- Ctrl+r:重做上一步,和u刚好相反,这两个命令有点类似word里的上方的左箭头和右箭头
- .(一个小数点):重复上一个操作
一般命令模式切换到编辑模式
- i:从光标处开始插入
- I:从光标行的第一个非空格符开始插入
- a:从光标处的下一个字符处开始插入
- A:从光标所在行的最后一个字符开始插入
- o:从光标的下面开新的一行插入
- O:从光标上面开新的一行插入
- r:替换光标处的字符(仅仅一次)
- R:替换光标处的字符(按下Esc终止)
一般命令模式切换到命令行模式进行保存退出
- :w:保存
- w [filename]:另存为一个文件
- :q:退出
- :wq!:强制保存并退出
- ZZ:若文件没有修改,不保存退出,若修改则保存后退出
- :n1,n2 w [filename]:n1行到n2行的内容保存到另一个文件
多文件编辑时的命令
例如复制一个文件的内容到另一个文件,因为vim的内容是独立的,因此开两个vim,复制粘贴并不会奏效,正确的做法是一个vim同时打开两个文件
vim file.txt file2.txt
然后复制一个文件的内容,再跳到下一个文件进行复制,相关命令为
- :n:跳到下一个文件进行编辑
- :N:跳到上一个文件进行编辑
- :files:查看当前同时编辑的文件
vim的选中功能
vim中选中功能十分强大,对批量进行文本操作很方便,相关的命令如下
- v:从光标字符处开始选中,可以用方向键进行选择
- V:从光标所在行开始选中,方向键进行多行选中
- Ctrl+v:可视化区块,可以任意选中一个矩形框的内容
上面第三个功能十分强大呢,因为以往多行选中时,每一行之间的内容是连续的,而这个命令可以实现只选中连续行的同一个部分。选中了之后,可以通过 y,d,p,进行对选中内容的复制,删除,粘贴。
分屏的功能
- :sp [filename]:分屏打开文件,如果没有filename,两个屏幕打开一个文件进行编辑,若提供了filename,则是打开一个新的文件
- Ctrl+w+j(或者向下):光标跳转到下面的文件
- Ctrl+w+k(或者向上):光标跳转到上面的文件
- Ctrl+w+q:退出光标所处的文件
- :q:效果同上
上面的命令的按法是先Ctrl+w,然后再按第三个键。
先写这么多,以后再不断添加吧!