내 .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>를 찾고 있는 것 같습니다.