如何重新映射" q!"和" q"在vim

时间:2014-04-23 13:08:14

标签: vim

我尝试重新映射qq!。这是我正在尝试的内容:

cnoremap q :call TabCloseLeft('q')
cnoremap q! :call TabCloseLeft('q!')

正确地重新映射:q,但不会捕获:q!。我已经阅读了各种帮助部分,但我显然忽视了某些内容。

1 个答案:

答案 0 :(得分:5)

我看到了一些问题:

  • 您正在危险地使用cnoremap,例如/q
  • 您正在尝试覆盖vim的原生:quit功能
  • 看起来你正试图强迫vim进入标签行为

cnoremap

使用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中使用选项卡很棒,但它们不是唯一的方法,肯定会让你痛苦不堪。恕我直言,最好是减少这些行为并鼓励更好的习惯。