如何在vim中禁用Esc和光标键

bes*_*bov 10 vim

有一种观点认为,在vim中工作时,不应使用Esc键(改为使用ctrl + c),也不要在键盘上使用箭头键(使用h,j,k,l).但是很难不使用这些键.我认为有一种方法可以在.vimrc中禁用这些键,所以除了使用ctrl + c和hjkl之外别无选择.

我搜索了一下,在这个链接上找到了解决方案.所以我在.vimrc文件中插入了以下内容:

 inoremap  <Up>     <NOP>
 inoremap  <Down>   <NOP>
 inoremap  <Left>   <NOP>
 inoremap  <Right>  <NOP>
 inoremap  <Esc>    <NOP>
 noremap   <Up>     <NOP>
 noremap   <Down>   <NOP>
 noremap   <Left>   <NOP>
 noremap   <Right>  <NOP>
 noremap   <Esc>    <NOP>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.将此添加到我的.vimrc会破坏我对功能键的映射.另一个问题是它不会阻止箭头键的功能,而是当我在正常模式下按下Down时,会执行多个动作 - 光标向上移动一行,创建新行并插入字符"B".

如何在我的vim 7.2中禁用光标键和Esc键而不破坏其他任何内容?

Ran*_*ris 17

如果你在终端中使用vim,你绝对不应该重新映射Escape.由于在vim中处理密钥的方式(通常可能是终端),重新映射它会破坏你不想改变的各种密钥.要了解我的意思,请执行以下操作.

  1. 打开没有启动文件的vim : vim -u NONE --noplugin -N.
  2. 进入插入模式.
  3. 按,Ctrl-v然后按任意功能键,例如<F2>.

注意输入的序列.它很可能从^[一个文字开始Escape.

现在打开尝试以下内容:

  1. :inoremap <esc> NO ESCAPE FOR YOU
  2. 进入插入模式.
  3. 按下任何功能键,例如<F2>.

如果前一个序列显示转义字符作为<F2>按键的一部分,您现在将看到我们的新字符串打印到屏幕上.实际上,现在您已经有了映射,请尝试使用光标键移动.你可能会注意到同样奇怪的行为.

总之,不要重新映射逃避,我几乎保证你会有意想不到的后果.


hol*_*eek 8

这是一种非常令人讨厌的方式来实现你想要的东西:将你的拇指大小的纸张弄皱并将它们粘在钥匙上.你的手指试图触及它们的那一刻,你会撞到纸上.他们会成为一个很好的提醒.将它们粘在那里,直到你不再撞到它们.

  • 这假设您只使用vim,我们中的一些人也希望在其他应用程序之间切换. (3认同)