Vim

如何在 vim 中手動設置鍵碼?

  • August 21, 2011

有時當我啟動 vim 時,我的Insert鍵不起作用(需要使用i),我的箭頭也不起作用(它們給我的是字母)。

我猜這與我的鍵未正確映射有關。我怎樣才能永久解決這個問題?

您需要在您的~/.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>')

引用自:https://unix.stackexchange.com/questions/19055