对于 :q 和 :Q 也是一样的。我几乎总是没有及时松开 shift 键,而且由于 :Q 和 :W 很少使用,所以我认为让它们与小写字母的命令相同会更好。
对于 :q 和 :Q 也是一样的。我几乎总是没有及时松开 shift 键,而且由于 :Q 和 :W 很少使用,所以我认为让它们与小写字母的命令相同会更好。
通过使用:cmap
或:cabb
来实现此操作,但这些方法会产生副作用(即其他实例也将被意外转换)。
cmdalias插件能够更好地完成这项工作。
但我认为对于您的用例最好定义自己的大写命令变体。主要挑战是支持原始命令所具有的所有选项:
command! -bang -range=% -complete=file -nargs=* W <line1>,<line2>write<bang> <args>
command! -bang Q quit<bang>
是的,你可以在你的 .vimrc 文件中重新映射它们,像这样:
cabb W w
cabb Q q
或者
cmap W w
cmap Q q
cmap
显示更改,cabb
则不显示)。您可以通过将以下条目添加到您的.vimrc
中来定义W
和Q
:
command! W write
command! Q quit
noremap对我来说没有任何已知的副作用。
noremap :W :w
nnoremap :W :w<cr> , 这将消除延迟。
- user13786942:wq
实际上,这是将ESC和:(它本身是Shift+;)组合起来,然后按下w、q和Enter。总共需要五个按键,如果将:算作两个,则需要六个按键。
相反,请尝试按下ESC,然后(保持)按下Shift,再按下Z,然后再按一次Z(根本不需要:)。它会立即保存并退出文件。少一个按键(或两个,取决于您如何计算),而且更难出错。
;w
和;q
。nnoremap ; :
nnoremap : ;
vnoremap ; :
vnoremap : ;
:X
是特殊的;通常 Vim 命令都是小写的。你需要使用cmdalias
来执行它。 - Ingo Karkatcommand! W w
不能传递范围或文件名。命令不像映射一样简单地替换! - Ingo Karkat:W
命令是一流的;你可以自动完成它,在映射中使用它,记录它,将它放在历史记录或 Vimscript 中等等。cmdalias 通过操作你输入的命令行来工作,有时会出现一些奇怪的行为(虽然你通常不会注意到)。但是:如果你已经使用了 cmdalias,请继续使用它来定义一个:W
别名。 - Ingo Karkat