我尝试重新映射q
和q!
。这是我正在尝试的内容:
cnoremap q :call TabCloseLeft('q') cnoremap q! :call TabCloseLeft('q!')
正确地重新映射:q
,但不会捕获:q!
。我已经阅读了各种帮助部分,但我显然忽视了某些内容。
答案 0 :(得分:5)
我看到了一些问题:
cnoremap
,例如/q
:quit
功能 不使用cnoremap
尝试创建命令,使用:command
。如果要覆盖命令,请使用聪明的cabbrev
表达式或插件。 See vim change :x function to delete buffer instead of save & quit
有很多方法可以在vim中退出缓冲区。有些人做的事略有不同。当vimmers学习更多命令时,他们会将它们集成到工作流程中。例如<c-w>c
关闭分割/窗口并ZZ
更新当前缓冲区。如果沿着这条路走下去,你将会覆盖许多命令,否则你将无视有用的命令。
了解use buffers effectively。在Vim中使用选项卡很棒,但它们不是唯一的方法,肯定会让你痛苦不堪。恕我直言,最好是减少这些行为并鼓励更好的习惯。