왜 내 매핑인가?:bY는 gvim에서 작동하지 않나요?

왜 내 매핑인가?:bY는 gvim에서 작동하지 않나요?

.vimrc파일에는 다음 두 줄이 있습니다.

noremap! <C-PageDown> :bnext <CR>
noremap! <C-PageUp>   :bprev <CR>

하지만 그들은 작동하지 않습니다! 삽입 모드에서 다음을 입력하십시오.

<C-v><C-PageDown>

반품

<C-PageDown>

<C-PageUp>(문자 그대로) 받은 명령을 실행하려고 해도 마찬가지입니다.

:bnext

(개행 문자 포함). 일반 모드에서는 효과가 없습니다. 그래서 나는 키맵이 내 껍질에 의해 먹히지 않는다는 것을 알고 있습니다. X하지만 또 무엇이 잘못될 수 있습니까? 다른 키 매핑은 잘 작동합니다.

답변1

해결되었습니다!

noremap  <C-PageDown>           :bnext <CR>
noremap  <C-PageUp>             :bprev <CR>
inoremap <C_PageDown> <C-\><C-O>:bnext <CR>
inoremap <C_PageUp>   <C-\><C-O>:bprev <CR>

삽입 모드에서는 키맵 오른쪽에 있는 모든 것이 문자 그대로 삽입되므로 <C-O>단일 명령에 대해 일반 모드로 들어가려면 어느 것을 사용해야 합니다. 이렇게 하면 <C-\>줄 끝에서 호출될 때 발생하는 왼쪽으로 커서가 이동하는 것을 방지할 수 있습니다.<C-O>

또한 중간에 공백이 있으면 안 됩니다 <C-O>. :bnext그렇지 않으면 먹히게 ​​됩니다 <C-O>.

답변2

이 키가 이미 vim에서 탭을 전환하는 데 사용되었기 때문인가요?vims 문서의 설명을 참조하세요.

답변3

:noremap의 n은 일반 모드용이므로 삽입 모드에서는 효과가 없습니다. 삽입 모드에서 작동하게 하려면 :imap을 사용하세요. 삽입 모드에서 작동하도록 <CV>를 사용하려는 경우 <CO>를 찾고 있는 것 같습니다.

관련 정보