有时,当我启动 vim 时,我的Insert按键不起作用(需要使用i)并且我的箭头不起作用(它们给了我字母)。
我猜这与我的按键没有正确映射有关。我怎样才能永久解决这个问题?
答案1
您需要在~/.vimrc
.理论上,转义序列取决于终端。实际上,如果转义序列对应于给定终端上的某个键,其他终端要么为相同的键发送它,要么根本不发送它,因此您可以只堆放定义而不必担心冲突。
要找出按键发送的转义序列,请进入插入模式并按Ctrl+ V,然后按该键。这会按字面意思插入转义序列。
将此类指令放入您的文件中~/.vimrc
(使用您观察到的转义序列):
function Allmap(mapping)
execute 'map' a:mapping
execute 'map!' a:mapping
endfunction
call Allmap(' <ESC>[A <Up>')
call Allmap(' <ESC>[B <Down>')
call Allmap(' <ESC>[C <Right>')
call Allmap(' <ESC>[D <Left>')
call Allmap(' <ESC>[F <End>')
call Allmap(' <ESC>[H <Home>')
call Allmap(' <ESC>[5~ <PageUp>')
call Allmap(' <ESC>[6~ <PageDown>')
call Allmap(' <ESC>[k4~ <C-Left>')
call Allmap(' <ESC>[5D <C-Left>')
call Allmap(' <ESC>Od <C-Left>')
call Allmap(' <ESC>[k6~ <C-Right>')
call Allmap(' <ESC>[5C <C-Right>')
call Allmap(' <ESC>Oc <C-Right>')