2026年最值得学的五个Vim技巧——不用变成Vim高手也能受益

王尘宇 实用技巧 7

我不算Vim重度用户,但服务器上改配置文件、快速编辑代码片段时还是离不开它。分享五个我最常用的技巧,都是学了就能立刻用上的。

1. 可视模式选择——比鼠标选中还快

普通模式下按v进入字符可视模式,按V进入行可视模式,按Ctrl+v进入块可视模式。

字符可视模式:按v之后用方向键选择文本,选中后按d删除、按y复制、按c修改。比数着行号去删除方便多了。

块可视模式是我用得最多的。Ctrl+v进入块选择,选中一个矩形区域后按I(大写i)可以批量插入文字,按d可以批量删除。比如你要给一个配置文件的10行前面都加#注释,块选择+I+# 一步搞定。

2. 宏录制——重复操作的救星

按qa开始录制宏到寄存器a,执行你要重复的操作,按q停止录制。之后按@a就回放一次,按100@a就回放100次。

举个实际场景:你有一份日志文件,每一行是"2026-08-22 14:30:01 INFO: some message",你想把每行的日期和时间删掉,只保留"INFO: some message"部分。

操作步骤:qa(开始录制)→ 0(到行首)→ d2w(删两个单词,即日期和时间)→ j(到下一行)→ q(停止录制)。然后按999@a执行999次。

比写sed命令快,而且不需要记sed的语法。

3. 替换命令的高级用法

大家都知道:%s/old/new/g可以全局替换。但Vim的替换比这强得多。

限定范围::10,20s/old/new/g 只替换第10到20行。:'<,'>s/old/new/g 只替换可视模式选中的区域。

确认模式::%s/old/new/gc 每个替换都问你确认。按y替换,按n跳过,按a全部替换。

正则替换::%s/\d\+/NUMBER/g 把所有数字替换成"NUMBER"。:%s/^\s*$//g 删除所有空行。

跨行替换比较麻烦,需要把 写成 。但一般够用了。

4. 分屏操作——同时看两个文件

:sp 文件名 水平分屏。:vsp 文件名 垂直分屏。Ctrl+w加方向键在分屏之间切换。

我经常用的场景:上面窗口看配置文件模板,下面窗口改自己的配置。不用来回切换标签页。

分屏后用:res +5和:res -5调整窗口大小。Ctrl+w = 让所有分屏等大。

关闭当前分屏:q,关闭所有其他分屏:only。

5. 标记功能——在大文件里快速跳转

普通模式下按m加一个字母(比如ma),就在当前位置设了一个标记a。之后在文件任何地方按'a(单引号加a),光标直接跳到标记位置。

大写标记是全局的——mA设的标记在不同文件之间也能跳转。我在编辑多个配置文件时经常用:在nginx.conf的server块设mA,在php.ini的关键位置设mB,然后'A和'B在两个文件之间跳转。

:marks命令可以查看所有标记。删除标记用:delmarks a。

一个额外的小技巧

在.vimrc里加一行set relativenumber,行号会显示成相对行数(当前行是0,上面是1、2、3,下面是1、2、3)。这样你可以用5dd删5行、3j跳3行,不用数绝对行号。习惯了以后效率提升很大。

Vim不需要精通,学到能用就行。以上五个技巧覆盖了我日常80%的Vim操作。剩下的20%——用的时候Google一下就好。

标签: Vim技巧 编辑器 效率工具

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~