清除所有当前定义的vim​​宏

时间:2010-04-22 09:17:19

标签: vim macros

我有一个vim宏,我一直在输入错误,通常当我试图保存某些东西时,我很快就会这样做,而且我无法弄清楚我按下了什么键。它很烦人,因为它将一些不相关的bash代码粘贴到我的文件中,因此我必须撤消错误的粘贴,这也是我输入的最后一个我想要的东西。

我一直在寻找一种方法来列出当前定义的宏(因此我可以重新定义有问题的宏),或者一种完全清除它们的方法。我只在短期内使用宏,所以我不介意丢失它们。

干杯

2 个答案:

答案 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;。

  • q开始录制宏
  • 将缓冲区空间设置为w
  • q再次保存(现在为空)宏

验证:reg [ister] w

这只比它快一点:让@w =&#39;&#39;但对我来说更容易记住。