vim에서`<del>`를`<esc>`에 올바르게 다시 매핑하는 방법은 무엇입니까? 소유자이자 행복한 vim

저는 TypeMatrix 2030 의 행복한 소유자이자 행복한 vim 사용자입니다. 이 키보드에는 <del>중앙 위치 <esc>가 있으며 평소와 같이 왼쪽 상단 키가 있습니다. 그래서 내 <del>키를 에 다시 매핑하고 싶습니다 <esc>. 지금 까지이 줄을 내에 추가했습니다 .vimrc.

noremap <del> <esc>
nnoremap <del> <esc>
inoremap <del> <esc>
vnoremap <del> <esc>
xnoremap <del> <esc>
snoremap <del> <esc>
cnoremap <del> <esc>
onoremap <del> <esc>

그것은 거의 명령 줄 모드를 제외하고 잘 작동 : 입주는 :cmd<del>마찬가지로 도움을 시작합니다 :cmd<enter>동안 :cmd<esc>라인을 지우고 일반 모드로 돌아갑니다.

출력은 다음과 같습니다 :verbose cnoremap <Del>.

c  <Del>       * <Esc>>
    Last changed in ~/.config/vim/vimrc

다른 모드의 출력은 이상한 chevron과 비슷한 결과를 제공 >>하지만 잘 작동합니다 (삽입 모드에서 입력하면 일반 모드로 전환됩니다).



답변

이 동작은 아래에 설명 된 내용 때문이라고 생각합니다 :help c_Esc( “매크로”를 “매핑”이라고 읽습니다. 밀접하게 관련되어 있습니다).

  <Esc>   When typed and 'x' not present in 'cpoptions', quit
          Command-line mode without executing.  In macros or when 'x'
          present in 'cpoptions', start entered command.

<C-c>대신 다음 을 사용하여이 문제를 해결할 수 있습니다 .

:cnoremap <del> <C-c>