我有一个vim宏,但我经常打错,特别是当我尝试快速保存内容时。我无法确定自己按下了哪些按键,结果就会把一些不相关的bash代码粘贴到我的文件中,这很烦人。我不得不撤销错误的粘贴操作,这也会撤销我想要保留的最后一件事情。
我想知道如何列出当前定义的宏(这样我就可以重新定义有问题的宏),或者完全清除它们的方法。我只在非常短的时间内使用宏,所以失去它们也无妨。
谢谢
宏
Vim中的宏通常以@和一个字母开头。它会执行该字母作为名称的寄存器内容。
列出寄存器内容
:reg
您可以通过以下方式清除寄存器 a 的内容:
:let @a = ''
列出映射
所有映射
:map
以 \ 开头的所有映射
:map \
正常模式
:nmap
插入模式
:imap
可视化模式
:vmap
命令模式
:cmap
列出缩写
所有缩写
:abbr
以 email 开头的所有缩写
:abbr email
插入模式
:iabbr
命令模式
:cabbr
您可以在上述命令之前使用:verbose
来获取有关映射/缩写最后设置位置的更多信息,例如::verbose nmap
。这些命令还显示由插件和其他配置文件设置的所有映射。
删除映射/缩写
(这里只列出了几种模式,您应该能够像上面的列表命令一样仅删除某个模式下的映射/缩写。)
插入模式,删除定义为 \ 的映射:
:iunmap \\
正常模式:
:nunmap \\
删除定义为 email 的缩写:
:unabbr email
取消单词缩写,使“email”不再自动替换为之前定义的缩写。
插入模式:
:iunabbr email
清除映射/缩写
我不建议清除所有映射/缩写,因为这样会导致你失去所有插件已映射/缩写的内容。但是,你可以通过在上述列表命令后添加字母c来清除映射,例如,在插入模式下清除映射: :imapc
。 缩写可以使用:abclear
清除,或者仅清除插入模式:iabclear
和仅清除命令模式:cabclear
。
清除单个宏 - 录制一段空内容覆盖原有宏录制。
在正常模式下,您只需键入“qwq”即可。
用 :reg[ister] w 命令验证。
这种方法比 :let @w = '' 稍微快一点,但对我来说更容易记住。