· 5 min read
Vim编辑器使用效率提升技巧 -- 持续更新
Vim作为一个强大的编辑器,可以将很多重复的操作简化,一旦熟练运用,将大幅提高编辑文本的效率,本篇主要总结一些常用的编辑技巧。

Vim作为一个强大的编辑器,可以将很多重复的操作简化,一旦熟练运用,将大幅提高编辑文本的效率,本篇主要总结一些常用的编辑技巧。
行内光标移动
0移动到行首$移动到行尾^移动到非空行首g_移动到非空行尾f[c]移动光标到行内下一个字符,;继续向后查找[c]字符,,继续向前查找[c]字符F[c]移动光标到行内上一个字符,;继续向后查找[c]字符,,继续向前查找[c]字符
移动光标到特定行
gg移动光标到第一行G移动光标到最后一行5G移动到第5行:5<Enter>移动到第5行
不移动光标完成复制
:3t5将第三行复制到第五行下方,比yyp高效
不移动光标完成剪切
:22,25m10将22到25行移动到第10行之后
移动光标到前/后一个光标位置
- 前一个位置(Older):
<C-o> - 后一个位置(Newer):
<C-i>
<C-o> 表示同时按Ctrl和小写o
移动光标到前/后一个修改位置
- 前一个位置(Older):
g; - 后一个位置(Newer):
g,
编辑关闭区间内的内容
c编辑y复制d删除gU大写gu小写
Change Inside Something
ci(编辑括号内的内容ci"编辑引号内的内容cit编辑html标签内的内容yi[复制方括号内的内容di[删除方括号内的内容
<a href='/'> 首页 </a>
cit后
<a href='/'></a>
全文替换
- :%s/old/new/g 将old替换为new
宏录制
按qa开始录制宏,执行一系列操作,按q结束录制。然后按@a执行录制的宏。
在插入模式下粘贴
<C-r>0粘贴0号寄存器内的内容,0号寄存器为复制专用寄存器,复制y命令写入0号寄存器<C-r>"粘贴"号寄存器内的内容,"号寄存器为匿名寄存器,复制y或者删除d命令写入"号寄存器
寄存器
寄存器是一个内部存储器,用于存储剪贴板中的文本、宏的定义、搜索历史记录等等。Vim中有多个寄存器,每个寄存器都有一个特定的名称,可以使用冒号命令:registers来查看它们的列表。
| 符号 | 描述 |
|---|---|
| ” | 匿名寄存器(删除和复制默认寄存器):删除和复制的内容都会覆盖此寄存器 |
| 0 | 复制粘贴寄存器:用于存储最近一次复制的文本,只有复制的内容才会覆盖此寄存器。例如,如果您最近复制了一段文本,然后想将它粘贴到另一个位置,可以按下 " 键,然后按下 0 键,最后按下 p 键。 |
| _ | 黑洞寄存器:用于丢弃不需要的文本。例如,如果您想删除一段文本,但不想将其存储在任何寄存器中,可以使用 "_d 命令来删除文本。 |
| : | 命令寄存器:用于存储最近使用的命令。例如,如果您最近使用了一个特定的命令,但是忘记了精确的语法,可以按下 " 键,然后按下 : 键,最后按下 p 键来查看最近使用的命令。 |
| + | 系统剪切板寄存器 |
| = | 表达式寄存器:返回表达式的计算结果 |

