You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim技巧:如何将录制的宏转为let命令永久保存?

如何在Vim中永久保存录制的宏?

你遇到的问题是因为在.vimrc中直接用单引号包裹宏内容时,^R和^[这些字符会被当作普通文本,而不是对应的控制字符。以下两种方法可以解决:

方法1:插入实际的控制字符

直接在.vimrc中写入宏对应的实际控制字符:

  1. 打开.vimrc并进入插入模式
  2. 输入 let @a='c**
  3. 按下 Ctrl+v 后再按 Ctrl+r,此时会插入实际的^R控制字符(不是手动输入^+R)
  4. 输入 "**
  5. 按下 Ctrl+v 后再按 Esc(或你用来切换普通模式的Ctrl+;,如果它映射到Esc的话),插入实际的^[控制字符
  6. 输入 ' 完成命令,最终内容为:
    let @a='c**^R"**^['
    
    (注意这里的^R和^[是显示出来的控制字符,不是手动输入的符号)

方法2:使用Vim脚本转义序列

用双引号包裹宏字符串,使用Vim支持的转义表示法:

let @a="c**\<C-r>\"**\<Esc>"
  • <C-r> 表示Ctrl+r操作
  • \" 是双引号的转义写法(因为字符串用双引号包裹)
  • <Esc> 对应宏中的^[(即切换到普通模式的操作)

保存.vimrc后重启Vim,选中文字按@a就能正常调用这个宏了。

内容的提问来源于stack exchange,提问作者Culip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:05:30