Vim
在服务器上编辑配置文件,或者在本机练习模态编辑。普通模式直接写实际按键,如 dw;组合键写作 ctrl + r,大写字母用 shift 说明,以 : 开头的是命令行模式命令。
基础条目参考:Vim 官方速查。
模式切换
普通模式、插入模式、可视模式、命令行模式之间的切换。
在光标前进入插入模式
i
- 助记:
i对应insert(插入),从光标前开始输入。
返回普通模式
escape
- 助记:
escape是 Escape(退出当前状态);退出插入状态后回到普通模式。
光标移动
按字符、单词、行、段落、屏幕移动,跳到行首、行尾和指定行。
向左、下、上、右移动
h
j
k
l
- 助记:这是键位位置记忆:
h在左、l在右,中间j向下、k向上;不需要编造字母缩写。 - 作用:四个按键分别使用。
跳到文件开头或末尾
gg
shift + g
- 助记:
G是跳转命令,默认到最后一行;gg到第一行。大小写和重复次数都是命令的一部分。 - 作用:gg 到第一行,
shift + g输入大写 G,跳到最后一行。
跳到行首或行尾
0
$
- 助记:
0联想行的起点;$也在正则中表示末尾,可一起记成行尾。 - 作用:0 到行首,$ 到行尾。
编辑与操作符
d、c、y 等操作符和动作组合,删除、修改、复制和粘贴。
删除当前行
dd
- 助记:
d对应delete(删除);操作符重复成dd表示对整行操作。
复制当前行
yy
- 助记:
y对应yank(复制到寄存器);重复成yy表示复制整行。
在光标后粘贴
p
- 助记:
p对应put(放入),把寄存器里的内容放到光标后。 - 作用:复制整行时粘贴到当前行下方。
撤销与重做
u
ctrl + r
- 助记:
u对应undo(撤销);ctrl + r 的r联想redo(重做)。 - 作用:u 撤销,ctrl + r 重做。
文本对象
iw、i"、ap 等文本对象,一次选中单词、引号内容或段落。
修改当前单词
ciw
- 助记:
c= change(修改),i= inner(内部),w= word(单词),组合起来就是“修改单词内部”。 - 作用:删除当前单词并进入插入模式。
搜索与替换
/ 搜索、* 搜当前单词、:s 和 :%s 替换。
向下搜索关键词
/keyword
- 助记:
/发起搜索;n联想 next(下一个),N反向找。 - 作用:输入后回车;n 找下一个,N 找上一个。
逐项确认全文替换
:%s/old/new/gc
- 助记:
s= substitute(替换),%= 全文件范围,g= global(每行全部匹配),c= confirm(确认)。 - 作用:g 表示一行内所有匹配,c 表示逐项确认;old 是正则表达式。
可视模式
字符、行、块选择,以及对选区的批量操作。
按整行选择文本
shift + v
- 助记:
v联想 visual(可视选择);shift + v输入大写 V,按整行选择,小写 v 按字符选择。 - 作用:再用 j / k 扩展选区,y 复制或 d 删除。
寄存器与宏
用寄存器保存多段文本,录制并重放宏。
录制并重放宏
qa
q
@a
- 助记:
qa中q开始录制,a是寄存器名;单独q停止,@a执行 a 中的宏。 - 作用:普通模式下 qa 开始录制到寄存器 a;做完操作按 q 停止,@a 重放。三步分开执行。
文件、缓冲区与窗口
保存、退出、打开多个文件,分屏和切换窗口。
保存并退出
:wq
- 助记:
w= write(写入文件),q= quit(退出);wq就是先保存再退出。
放弃当前文件修改并退出
:q!
- 助记:
q= quit(退出),!表示强制;这里是忽略尚未保存的修改。 - 作用:会丢弃当前缓冲区尚未保存的修改。
左右分屏打开文件
:vsplit config.yaml
- 助记:
vsplit= vertical split(垂直分割),所以得到左右两个窗口。 - 作用:把文件名换成实际路径;ctrl + w 后按 w 切换窗口。
常用配置
~/.vimrc 常用设置,比如行号、缩进和搜索高亮。
显示行号
:set number
- 助记:
set是设置,number是行号;选项名直接说明要显示什么。 - 作用:只在当前会话生效;长期使用可把 set number 写进 ~/.vimrc。