Vim技巧:如何将录制的宏转为let命令永久保存?
如何在Vim中永久保存录制的宏?
你遇到的问题是因为在.vimrc中直接用单引号包裹宏内容时,^R和^[这些字符会被当作普通文本,而不是对应的控制字符。以下两种方法可以解决:
方法1:插入实际的控制字符
直接在.vimrc中写入宏对应的实际控制字符:
- 打开
.vimrc并进入插入模式 - 输入
let @a='c** - 按下
Ctrl+v后再按Ctrl+r,此时会插入实际的^R控制字符(不是手动输入^+R) - 输入
"** - 按下
Ctrl+v后再按Esc(或你用来切换普通模式的Ctrl+;,如果它映射到Esc的话),插入实际的^[控制字符 - 输入
'完成命令,最终内容为:
(注意这里的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
相关产品推荐
相关产品推荐

