内容提要
本文介绍Vim命令行模式的多种技巧,包括进入退出方式、重复命令、快捷键、寄存器插入、自动补全、历史记录窗口及更多指令。强调命令行模式是文本编辑的“瑞士军刀”,掌握后可大幅提升Vim编辑效率。
延伸解读
命令行模式的重复与编辑技巧
使用 @: 可以快速重复上一条命令行指令或外部命令,适合重复执行替换或过滤操作。在命令行模式中,除了方向键移动,还可以用 Ctrl-b/Ctrl-e 跳到行首/行尾,用 Ctrl-h/Ctrl-w/Ctrl-u 删除字符、单词或整行。更强大的是按 Ctrl-f 进入命令行编辑的普通模式,像编辑文本一样修改命令,再按 Enter 执行。
寄存器与自动补全的实用场景
在命令行模式中,Ctrl-r 可以插入寄存器内容,例如 Ctrl-r a 插入寄存器 a 中的文本。结合 Ctrl-r Ctrl-w 获取光标下的单词,或 Ctrl-r Ctrl-f 获取文件名,能减少手动输入错误。自动补全方面,输入命令前缀后按 Tab 或 Ctrl-n 可循环候选,Shift-Tab 或 Ctrl-p 回退,适合记不全命令时快速选择。
历史记录窗口的高效复用
默认 Vim 存储最后 50 条命令,可用 :set history=100 调整。按 q: 打开可搜索、可编辑的命令历史窗口,直接修改历史命令再执行,例如将替换目标从 pancake 改为 donut。类似地,q/ 和 q? 可打开搜索历史窗口。退出窗口可用 Ctrl-c、Ctrl-w c 或 :quit。
Q&A
如何进入和退出Vim的命令行模式?
进入命令行模式有四种方式:使用搜索命令(/ 或 ?)、命令行指令(:)、外部命令(!),可以从普通模式或可视模式进入。退出命令行模式可以使用 <esc>、Ctrl-c 或 Ctrl-[。
在Vim命令行模式中,如何重复执行上一条命令?
在命令行模式中,使用 @: 可以重复上一条命令行指令或外部命令。例如,如果刚执行了 :s/foo/bar/g,输入 @: 会再次执行该替换。
Vim命令行模式中有哪些快捷键可以快速移动和编辑命令?
在命令行模式中,可以使用左右方向键移动一个字符,Shift-Left/Right 移动一个单词,Ctrl-b 移动到行首,Ctrl-e 移动到行尾。删除字符可用 Ctrl-h(删除一个字符)、Ctrl-w(删除一个单词)、Ctrl-u(删除整行)。按 Ctrl-f 可以像编辑普通文本一样编辑命令,并查看历史命令。
如何在Vim命令行模式中插入寄存器内容或自动补全命令?
在命令行模式中,按 Ctrl-r 后跟寄存器名可以插入该寄存器的内容,例如 Ctrl-r a 插入寄存器a的内容。还可以用 Ctrl-r Ctrl-w 插入当前光标下的单词,Ctrl-r Ctrl-A 插入词组,Ctrl-r Ctrl-l 插入当前行,Ctrl-r Ctrl-f 插入文件名。自动补全命令时,输入命令前缀后按 Tab 或 Ctrl-n 选择下一个选项,Shift-Tab 或 Ctrl-p 选择上一个选项。
如何查看和编辑Vim的命令历史记录?
运行 :his : 可以查看命令行指令的历史记录,默认存储最后50条,可通过 :set history=100 更改数量。按 q: 打开可搜索、可编辑的历史记录窗口,可以修改历史命令并执行。查看搜索历史可用 :his / 或 :his ?,打开搜索历史窗口用 q/ 和 q?。退出历史窗口按 Ctrl-c、Ctrl-w c 或输入 :quit。
Vim命令行模式有哪些其他常用指令?
Vim有几百个内置指令,可以通过执行 :h ex-cmd-index 或 :h :index 查看所有指令的列表。