我正在尝试创建一个宏来使用它全局。我已将此命令插入 .vimrc 文件
let @c='<esc>:r c.c'
或
let @c=':r c.c'
但在这两种情况下,当我在任何文件上使用“ @c ”时,只有在文件上打印'c&gt;:r c.c'
答案 0 :(得分:3)
尝试在宏的末尾添加“^M
”,然后“@c
”应该有效。其他':@c
'应该像ebenezer所提到的那样工作。您应该使用 Ctrl + V 输入来插入“^M
”。
let @c=':r c.c^M'
最好的方法是先录制宏,然后将其保存到.vimrc
。
如果这些不起作用,您可以使用c
检查注册内容"cp
,看看是否有遗漏。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果要在宏中包含特殊字符(如Escape或Enter),请使用非文字字符串(双引号,而不是单引号)和正确的语法。见:help expr-string
。您可以使用原始的特殊字符,如@Amit建议的那样,但这会使您的vimrc文件难以阅读。
假设您正在以普通模式开始并想要输入 @ c ,则无需从Escape开始。
出于测试目的,我尝试了
:let @c = ":echo 'foo'\<CR>"
它按预期工作。我甚至将这行(没有前导:)添加到我的vimrc文件中以确保,并以这种方式进行测试。这应该有效:
:let @c = ":r c.c\<CR>"