:map <keys>
매핑이 등록된 것으로 표시되었음에도 불구하고 내 Vim 매핑 중 일부가 작동을 멈췄습니다 .
예를 들어 map <S-CR> O<Esc>
, .vimrc
이전 항목을 삭제해도 작동하지 않습니다 map <CR> o<Esc>
. 이전 항목이 존재하는 경우 동일한 작업이 수행됩니다 <CR>
.<S-CR>
모든 Vim 패키지를 제거하고 소스에서 다시 설치해 보았지만 여전히 작동하지 않습니다. 도움이 될 수 있는 일반적인 문제 해결 팁은 무엇입니까?
답변1
를 사용하면 문제가 gvim
해결되었지만 (주석에 언급된) 것과 같은 다른 매핑은 여전히 작동하지 않습니다.<S-CR>
,ev
답변2
어느 날 나는 내 매핑 중 일부가 뚜렷한 이유 없이 작동을 멈춘 것을 발견했습니다. 소햄이 그랬던 것처럼.
어쨌든, 우리의 사랑스러운 Vim에는 매우 이상한 부작용이 있는 것 같습니다. 내 경우에는 langmap 옵션의 문자열에 » 기호를 추가하면 다른 키와 기호의 매핑이 일부 깨졌습니다. 그 중 :map 명령의 출력은 모든 것이 정상임을 보여줍니다. 예, Shift-Tab과 같은 일부 경우에는 터미널이 신호를 전달하지 않지만 우리가 논의하는 경우는 그렇지 않습니다.
Soham이나 나 같은 사람이 문제에 빠지면 langmap 옵션을 사용하여 조사를 시작해 보세요. 언어 맵의 기호와 작동이 멈춘 기호 및 키 사이에 눈에 띄는 연결이 있다고 가정하지 마십시오.
세부 사항.
터미널 동작을 이해한 후 Vim에 더 많은 "핸들"을 제공하기 위해 xkb 기술을 통해 일부 키맵을 다시 매핑했습니다. 특히 Tab 키에 Escape 신호가 있습니다. 키의 다섯 번째 수준(xkb 용어)에는 Vim의 Ctrl-R 명령에 매핑되는 ↻ 기호가 있습니다. 그런 다음 라틴어 말뭉치를 사용할 때는 x 키(세 번째 수준)에 " 기호가 있고, 키릴 문자 말뭉치를 사용할 때는 같은 키에 » 기호가 있습니다.
내 언어 매핑은 다음과 같습니다.
set lmap=
set lmap+=йцукенгшщзхъ;qwertyuiop'\"
set lmap+=фывапролджэ;asdfghjkl_=
set lmap+=ячсмитьбю;zxcvbnm‘’
set lmap+=ЙЦУКЕНГШЩЗХЪ;QWERTYUIOP'\"
set lmap+=ФЫВАПРОЛДЖЭ;ASDFGHJKL_=
set lmap+=ЯЧСМИТЬБЮ;ZXCVBNM‘’
set lmap+=«»;“”
마지막 문자열의 » 기호(실제로는 x 키에 있음)는 Tab 키의 ↻ 기호 매핑을 중단합니다. 예! 아주 재밌어요! 따라서 » 기호에 대한 매핑을 제거하면 Vim이 올바른 상태가 됩니다.