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

Sim*_*ker 8 vim macros

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

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

干杯

Hei*_*ski 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.


小智 6

清除单个宏 - 记录它 - 什么都不做。

对于正常模式下的情况,您只需输入“qwq”。

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

使用 :reg[ister] w 进行验证

这仅比 :let @w = '' 快一点,但对我来说更容易记住。