如何使用vim命令创建宏?

时间:2014-03-01 18:58:31

标签: vim macros

我正在尝试创建一个宏来使用它全局。我已将此命令插入 .vimrc 文件

let @c='<esc>:r c.c' 

let @c=':r c.c'

但在这两种情况下,当我在任何文件上使用“ @c ”时,只有在文件上打印'c&gt;:r c.c'

3 个答案:

答案 0 :(得分:3)

尝试在宏的末尾添加“^M”,然后“@c”应该有效。其他':@c'应该像ebenezer所提到的那样工作。您应该使用 Ctrl + V 输入来插入“^M”。

let @c=':r c.c^M'

最好的方法是先录制宏,然后将其保存到.vimrc。 如果这些不起作用,您可以使用c检查注册内容"cp,看看是否有遗漏。

答案 1 :(得分:0)

这是described in another answer。尝试这样的事情:

let @c = ':r c.c'

然后,在您的文件中,使用

:@c

执行它。

答案 2 :(得分:0)

如果要在宏中包含特殊字符(如Escape或Enter),请使用非文字字符串(双引号,而不是单引号)和正确的语法。见:help expr-string。您可以使用原始的特殊字符,如@Amit建议的那样,但这会使您的vimrc文件难以阅读。

假设您正在以普通模式开始并想要输入 @ c ,则无需从Escape开始。

出于测试目的,我尝试了

:let @c = ":echo 'foo'\<CR>"

它按预期工作。我甚至将这行(没有前导)添加到我的vimrc文件中以确保,并以这种方式进行测试。这应该有效:

:let @c = ":r c.c\<CR>"