有一种观点认为,在vim中工作时,不应使用Esc键(改为使用ctrl + c),也不要在键盘上使用箭头键(使用h,j,k,l)。但是很难不使用这些键。我认为有一种方法可以在.vimrc中禁用这些键,所以除了使用ctrl + c和hjkl之外别无选择。
我搜索了一下,找到了link的解决方案。 所以我在.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>
但这不起作用。将此添加到我的.vimrc会破坏我的映射到 功能键。另一个问题是它不会阻止箭头键的功能,而是当我在正常模式下按下Down时,会执行多个动作 - 光标向上移动一行,创建新行并插入字符“B”。 p>
如何在vim 7.2中禁用光标键和Esc键而不破坏其他任何内容?
答案 0 :(得分:17)
如果您在终端中使用vim,则绝对不能重新映射Escape
。由于在vim中处理密钥的方式(通常可能是终端),重新映射它会破坏你不想改变的各种密钥。要了解我的意思,请执行以下操作。
vim -u NONE --noplugin -N
。Ctrl-v
,然后按任意功能键,例如<F2>
。注意输入的序列。它很可能以^[
开头,这是一个文字Escape
。
现在打开尝试以下内容:
:inoremap <esc> NO ESCAPE FOR YOU
<F2>
。如果前面的序列显示转义字符作为<F2>
键按下的一部分,您现在将看到我们的新字符串打印到屏幕上。实际上,现在您已经有了映射,请尝试使用光标键移动。你可能会注意到同样奇怪的行为。
总之,不要重新映射逃避,我几乎保证你会有意想不到的后果。
答案 1 :(得分:7)
这是一种非常令人讨厌的方式来实现你想要的东西:将你的拇指大小的纸张弄皱并将它们粘在钥匙上。当你的手指试图触及它们时,你会撞到纸上。他们会成为一个很好的提醒。将它们粘贴在那里直到你不再撞到它们。
答案 2 :(得分:3)
你所接近的是:
inoremap <esc> <NOP>
inoremap <Left> <NOP>
inoremap <Right> <NOP>
inoremap <Up> <NOP>
inoremap <Down> <NOP>
nnoremap <Left> <NOP>
nnoremap <Right> <NOP>
nnoremap <Up> <NOP>
nnoremap <Down> <NOP>
这条线给你带来了麻烦:
noremap <Esc> <NOP>