如何在vim中手动设置键码?

如何在vim中手动设置键码?

有时,当我启动 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>')

相关内容