写文档、改配置、批量处理日志——遇到一堆相似的编辑任务,手抖按错一次就得重来?别硬扛,vim 自带的宏录制功能就是干这个的。
一按一录,像按录音键一样简单
vim 里没有“宏录制”按钮,但有更直接的方式:用 q 键加一个寄存器字母,比如 qa,就表示“开始把接下来的操作录进寄存器 a”。再按一次 q,就停了。整个过程不弹窗、不提示,安静得就像你只是多按了两下键。
举个真实例子:你正在整理一份服务器日志,每行开头都有时间戳,想统一删掉前 20 个字符。手动删 50 行太累,这时候就可以录:
qa<Home>d20lq解释一下:qa 开始录;<Home> 跳到行首(实际按 0 更快);d20l 删除光标后 20 个字符;q 结束录制。现在寄存器 a 里就存好了这一套动作。
回放?一个 @ 就够了
光标移到第二行开头,敲 @a,刚才删 20 字符的动作立刻重放。想连放 10 次?直接 10@a。如果中间某次出错了,按 u 撤销就行,不影响宏本身。
注意:宏只记录你在普通模式下的操作。插入模式里的输入内容也会被记下,但不能自动适配不同长度的文本——比如你录了 iHello<Esc>,那每次回放都会硬插 “Hello”,不会智能判断该插啥。
小技巧:边录边试,随时微调
别怕录错。想试效果?录完马上 @a 看一眼,不满意就 qan(重新用 a 录),或者换寄存器 qb 另起炉灶。多个宏可以并存,a、b、c……随你挑。
再送个实用组合:配合 :normal 命令批量执行。比如想对第 10 到 20 行都运行 a 宏,输入:
:10,20norm @a比一行行按 @a 快多了,也更稳。
上网防护不只是装杀毒软件、关端口,高效安全地处理本地敏感配置文件、日志、脚本,本身就是在加固你的操作防线。把重复劳动交给 vim 宏,少一次手动失误,就少一分误删、误改的风险。