vim #
vim 的四种模式:命令模式,输入模式,底线命令模式,可视模式。
命令模式 #
启动 vim 就会直接进入命令模式。此状态下敲击键盘识别为命令,而非输入字符。比如此时按下 i
,会进入输入模式。
i
a
o
I
A
O
都是进入输入模式,区别在于:i
:从光标所在位置前面开始插入I
:在当前行首插入a
:从光标所在位置后面开始输入A
:在当前行尾插入o
:在光标所在行下方新增一行并进入输入模式O
:在当前上面一行插入
yy
:复制整行内容,例如3yy
就是复制光标以下的 3 行内容。y$
:复制当前光标到行尾内容p
:粘贴dd
:剪切或者删除光标所在行,20dd
则是删除光标以下的 20 行。d$
:剪切或者删除光标到行尾内容u
:撤销上一次操作ctrl + r
:如果错误的撤销了,可以使用ctrl + r
恢复。x
:删除当前光标后的一个字符。G
:移动到最后一行,20G
则会移动到第 20 行(可配合:set nu
)。gg
:移动到第一行:
:切换到底线命令模式,也就是在 vim 编辑器的最下面一行输入命令。
输入模式 #
在命令模式下按下 i
就进入了输入模式。
ESC
,退出输入模式,切换到命令模式
底线命令模式 #
在命令模式下按下 :
就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
q
:退出 vim。q!
:不保存修改,退出 vim。w
:保存文件wq
或者x
:保存并退出。set nu
:显示行号set nonu
:取消行号/
:向前搜索?
:向后搜索n
:向下查找N
:向上查找s/old/new
:用来替换字符串,默认只替换光标所在的行,要替换所有的行使用%s/old/new
,例如%s/abc/ABC
,如果要全局替换所有匹配到的字符使用%s/old/new/g
。- 按
ESC
键可随时退出底线命令模式。
可视模式 #
当需要对文件内容进行批量操作时使用,在命令行模式下,可进入不同的可视模式:
v
:字符可视模式,文本选择是以字符为单位的。V
:行可视模式,文本选择是以行为单位的。ctrl + v
:块可视模式,配合d
和I
可以进行块操作。例如多行注释,可以ctrl + v
进入块可视模式,然后上下移动光标,选中添加注释的块,然后按I
,在插入#
,再按两次ESC
,就可以实现多行注释。如果要取消多行注释,可以ctrl + v
进入块可视模式,然后上下移动光标,选中添加注释的块,然后按d
来删除#
。