简介
vim是所有类Unix系统内嵌的文本编辑器vi的升级版,代码补全、编译及错误跳转等方便编程的功能特别丰富,支持自定义。
命令模式
即:用打开vim文件后的初始模式,使用键盘控制光标移动来操作。
光标移动快捷键
操作 |
快捷键 |
解释 |
向下移动光标 |
向下方向键,j键,或者空格键 |
每按一次,向下移动一行 |
向上移动光标 |
向上方向键,k键或者是backspace键 |
每按一次,向上移动一行 |
向左移动光标 |
向左方向键或者h键 |
每按一次,向左移动一个字符 |
向右移动光标 |
向右方向键或者l键 |
每按一次,向右移动一个字符 |
移动到下一行行首 |
回车键 |
每按一次,光标会移动到下一行的行首 |
移动到上一行行首 |
-键 |
每按一次,光标会移动到上一行行首 |
移动至文件最后一行 |
G键 |
移动到最后一行的行首 |
文本操作快捷键
操作 |
快捷键 |
解释 |
从右插入 |
a |
在光标右边插入文本 |
从左插入 |
i |
在光标的左边插入文本 |
行尾追加 |
A |
在当前行尾追加文本 |
行首插入 |
I |
在当前行的开始插入文本 |
插入行 |
O或o |
O键在当前行的上面插入新的一行,o键在当前行的下面插入一个新行。 |
覆盖文本 |
R |
覆盖光标当前所在的位置以及后面的若干文本 |
合并行 |
J |
将当前光标所在行与下面的一行合并为一行 |
文本复制和粘贴快捷键
操作 |
快捷键 |
说明 |
复制行 |
yy |
将当前行复制到缓冲区。通过ayy,byy,cyy,可以定义多缓冲区,这样可以多个单独的行复制到对应的缓冲区,各个缓冲区相互之间不会受到影响 |
复制多行 |
nyy |
复制当前行以及下面的n行到缓冲区,n表示一个整数。与yy相同也可以使用anyy,bnyy,cnyy,来定义多缓冲区 |
复制单词 |
yw |
复制从光标到当前词尾的字符 |
复制多个单词 |
nyw |
n是一个整数,表示从当前位置起,复制n个字符 |
复制光标到行首 |
y^ |
从光标所在的位置开始,复制到当前行的行首 |
复制光标到行尾 |
y$ |
从光标所在位置开始,复制到当前行的行尾 |
粘贴到光标后面的位置 |
p |
将缓冲区中的字符串插入到光标的后面,如果有多个缓冲区,就用ap,bp,cp的方式进行粘贴 |
粘贴到光标前面的位置 |
P |
将缓冲区中的字符串插入到光标的前面,如果有多个缓冲区,就用ap,bp,cp的方式进行粘贴 |
删除文本快捷键
操作 |
快捷键 |
说明 |
删除当前字符 |
x |
删除光标所在位置的字符 |
删除多个字符 |
nx |
删除从光标所在位置开始,到后面的n个字符 |
删除当前行 |
dd |
删除光标所在的行 |
删除多行 |
ndd |
删除从当前行开始的n行 |
撤销上一步操作 |
u |
撤销刚刚执行的操作 |
撤销多个操作 |
U |
撤销针对当前行的所有操作 |
插入模式
使用任何文本操作快捷键都会进入该模式,上下左右四个键移动光标,backspace键和delete键移除光标前的字符
末行模式(底线命令模式)
使用 :进入末行模式
常用命令
操作 |
命令 |
说明 |
打开另一个文件 |
:e |
打开另一个文件,文件名作为参数 |
保存文件 |
:w |
保存文件,将文件的改动写入磁盘 |
退出 |
:q |
退出编辑器 |
强制退出 |
:q! |
不保存修改,直接退出 |
保存退出 |
:wq |
文件写入磁盘后退出,即使文件没有被修改也强制写入,并更新文件的修改时间。 |
保存退出 |
:x |
写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间。(与wq几乎没有差别) |
跳转指定行 |
:n |
跳转到第n行 |
显示序号 |
:set nu或者是:set number |
在每行前面显示行号(:set nonu 表示不显示序号) |
替换字符串 |
: s/old/new,: s/old/new/g, :x,y s/old/new/g或者是:%s/old/new/g |
:s/old/new表示用new字符串替换当前行中首次出现的old字符串;:s/old/new/g表示用字符串new替换当前行中所有的old字符串;:x,y s/old/new/g表示用new替换从x,到y之间的所有old字符串;:%s/old/new/g表示用new替换当前文件的所有字符串old |
删除指定行 |
:xd,:x,yd |
:xd删除第x行; :x,yd删除第x到y之间的行 |