我有一个vim宏,我一直在输入错误,通常当我试图保存某些东西时,我很快就会这样做,而且我无法弄清楚我按下了什么键。它很烦人,因为它将一些不相关的bash代码粘贴到我的文件中,因此我必须撤消错误的粘贴,这也是我输入的最后一个我想要的东西。
我一直在寻找一种方法来列出当前定义的宏(因此我可以重新定义有问题的宏),或者一种完全清除它们的方法。我只在短期内使用宏,所以我不介意丢失它们。
干杯
答案 0 :(得分:19)
<强>宏强>
vim中主要称为宏的是用 @ 和一个字母启动的。它以所述字母作为名称执行寄存器的内容。
列出注册内容
:reg
您可以使用
清除注册a :let @a = ''
列表映射
所有映射
:map
所有以\
开头的映射 :map \
正常模式
:nmap
插入模式
:imap
视觉模式
:vmap
命令模式
:cmap
列出缩写
所有缩写
:abbr
所有以电子邮件
开头的缩写 :abbr email
插入模式
:iabbr
命令模式
:cabbr
您可以在之前的命令之前使用:verbose
来获取有关上次设置映射/缩写的位置的更多信息,如:verbose nmap
中所示。这些命令还显示了插件和其他配置文件设置的所有映射。
删除映射/缩写
(这里只列出了几种模式,您应该只能为某种模式删除一种模式,就像上面的列表命令一样。)
插入模式,删除定义为\:
的映射 :iunmap \\
正常模式:
:nunmap \\
删除定义为电子邮件的缩写:
:unabbr email
插入模式:
:iunabbr email
清除映射/缩写
我不建议清除所有映射/缩写,因为你会丢失插件映射/缩写的所有内容。但是,您可以通过在上面的列出命令之后放置字母 c 来清除映射,如:imapc
中所示,以清除插入模式映射。可以使用:abclear
清除缩写,或者只为插入模式:iabclear
清除缩写,仅用于命令模式:cabclear
。
答案 1 :(得分:1)
清除单个宏 - 记录它 - 没有任何内容。
对于您在正常模式下的情况,您只需输入&#34; qwq&#34;。
验证:reg [ister] w
这只比它快一点:让@w =&#39;&#39;但对我来说更容易记住。