vim(vi)是Linux中功能强大的编辑工具。vim有3中主要的模式:
1.normal mode:当进入vim时,默认的模式就是normal mode。在此模式下,无法输入任何文字,不过可以利用按键命令来执行许多操作命令,例如移动光标位置、复制、删除。
2.insert mode:进入vim输入a、i、或o键。即可进入insert mode,此模式下可以输入文字内容。
3.command-line mode:在norma lmode中输入“:”即会进入command-line mode,在此模式下,可以做一些与输入文字无关的事,例如搜索字符串、保存文件或结束编辑等。
在normal mode下:
h:将光标向左移动一格
l:将光标向右移动一格
j:将光标向下移动一格
k:将光标向上移动一格
ctrl+b:将页面向前卷动一页
ctrl+f:将页面向后卷动一页
0:将光标移到该行最前面
$:将光标移到该行的最后面
G:将光标移到最后一行的开头
w或W:将光标移到下一个字
若输入“w”,则标点符号如“.”,“,”,“/”等字符都被当成一个字 |
e或E:将光标移到本单字的最后一个字符;如果光标所在位置为本单子的最后一个字符,则跳到下一个单字的最后一个字符。
若输入“w”,则标点符号如“.”,“,”,“/”等字符都被当成一个字 |
b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符。
ctrl+u:将光标向前移动半页
ctrl+d:将光标向右移动半页
ctrl+e:屏幕向下卷动一行,也可以说文章和光标向上卷动一行
ctrl+y:屏幕向上卷动一行,也可以说文章和光标向下卷动一行
在command-line mode下:
e 文件的路径及名称:打开指定文件
a:从当前光标所在的位置的下一个字符开始输入
i:在光标所在的位置插入新输入的字符
o:新增加的一行,并将光标移到下一行的开头
w:文件的路径及名称 保存文件
q:退出vim
Vim的常用操作命令
复制文字
yy:可将光标目前所在位置的正行复制,复制时不会将文字反白显示
nyy:其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下面2行一起复制
yw:可复制光标所在位置到整个单词结束的字符
nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面的2个字一起复制
p:可将复制的文字粘贴到当前光标所在的位置。若复制的是整行文字,则会将整行内容粘贴在光标所在位置的下一行
删除文字
d:先按d键,放开后按←键,可将光标位置前一个字符删除;按→键,则会将光标位置的字符删除;按↑键,可将当前光标所在的行与前一行一并删除。按↓键,可将当前的光标所在的行与下一行删除。
D:可删除一行中光标所在位置之后的所有字符。
dd:连续按2次d键可删除光标所在的那一行。
dw:将光标停在某个字的第一个字符,按dw键时,会将此字整个删除。如将光标置在某个字中间的字符上,则会将此字中光标后面的字符删除。
nd:n为数字,如按3d,再按下↑键,则删除光标上方的3行,再包括本身1行,共删除4行。若按下↓键,则删除光标下方3行再包括本身1行,共4行。
ndd:若按3dd键,表示删除当前光标位置的1行和下面的2行。
x:删除光标所在位置的字符
X:删除光标所在位置的前一个字符,与d+←键一样
nx:按4x键,表示删除光标位置后的3个字符和光标本身所在的字符
nX:按4X键,表示删除光标位置之前的4个字符(不包括光标的字符)
查找及替换文字
/或?:当药搜索文章中的某一个字符串时,可输入“/”或“?”,然后在输入要查找的字符串。例如输入“/kuka”,然后按回车键,vim就会把所有的gz字符串标记起来,并自动将光标移到第一个找到的字符串上。
n:将光标移到下一个找到的字符串上
N:将光标移到上一个找到的字符串上
r:替换光标所在的位置的字符。修改内容不一定要进入insert mode,在normal mode中,只要将光标移到要更改的字符上,然后按R键,就可以输入要查找的字符了。
R:连续替换光标所在的位置的字符,按Esc键停止替换
cc:按cc键可以替换光标所在的那一行
替换字符串:当要将文章中的某一个字符串全部替换时(例如将所有的temp替换成tmp),使用“:g/temp/s//tmp/g”或“:1,$stemp/tmp/g”命令,可立刻将所有的“temp”替换成“tmp”字符串。如果不是所有的“temp”字符串都要替换时,可用“:g/temp/s//tmp/gc”或“:1/,$stemp/tmp/gc”命令。则找到每一个“temp”字符串时,都会将整行显示在屏幕的下方,可输入“y”或“n”决定是否要替换。
显示光标所在的行数、移到指定的行数
^g、^G:按次组合键,则会在最下方处显示光标所造位置的行数,以及文章的总行数。
nG:n为数字,若按下
还原
u:按此键就是在执行undo命令,可取消前一次的操作
^r:按此键就是执行redo命令,可以恢复刚才undo的操作