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>')

관련 정보