Vim:x 터미널 키 매핑

Vim:x 터미널 키 매핑

저는 보통 Windows에서 Vim을 사용하고 키 매핑에 문제가 없습니다. 하지만 이제 MobaXterm을 통해 액세스하고 Ubuntu를 실행하는 가상 머신을 사용하고 있으므로 모든 것이 제대로 작동하지 않습니다. 여기에는 <c-s>저축과 달리기 같은 기본적인 것들이 포함되는데 <F5>, 그것 없이는 살 수 없습니다. 나는 이 문제를 해결하는 것으로 보이는 자료를 조사하고 읽었습니다(여기그리고여기), 그러나 그것들은 내 이해를 넘어서는 것입니다. 솔직히 말해서 <c-v>기능 키보다 먼저 눌러야 하는 것은 꽤 이상합니다. 시도해봐도 작동하지 않습니다. 누군가 이것을 설명할 수 있나요? 테스트 사례로 매핑 <F2>하려면 어떻게 해야 합니까 :pwd?

기쁘게도 나는 내 키맵을 발견했습니다.하다Ubuntu의 gVim은 예상대로 작동하므로 이를 사용하겠습니다. 하지만 나는 여전히 답을 원한다. 왜냐하면 나는 실제로 터미널에서 빠르고 쉬운 기존 vim의 느낌을 선호하기 때문이다.

답변1

ctrlS이것은 출력을 중지하는 터미널 명령이므로( ctrlQ작업 실행 취소) 그것 없이도 생활해야 합니다 .

다른 기능 키는 문제 없이 매핑 가능해야 합니다. :map매핑하려는 기능 키를 입력하고 탭하기만 하면 됩니다. 예를 들어 <F5>F5 키를 누른 다음 공백을 누르고 해당 키를 매핑할 위치를 입력하면 됩니다.

~/.vimrc각 vim 세션에 대한 매핑을 활성화하려면 이 줄(선행 콜론 제외)을 파일에 넣을 수 있습니다 .

이미 시도한 경우 질문을 편집하여 정확히 무엇을 시도했는지, 결과가 무엇인지(그리고 예상과 어떻게 다른지) 보여주세요.

편집: 터미널 정의에 정의되지 않은 시퀀스를 매핑하려는 경우 시퀀스를 수동으로 매핑할 수 있습니다.

먼저 예를 들어 를 누를 때 전송되는 바이트/문자를 찾아야 합니다 ctrlshiftF2. 나는 항상 od -c이것을 사용합니다. 명령을 시작하고 키 시퀀스를 누른 다음 클릭하여 ctrld파일 끝을 명령으로 보낸 다음 디코딩된 버전을 인쇄합니다.

$ od -c
^[[24^
0000000 033   [   2   4   ^  \n
0000006

따라서 이것은 이스케이프 문자인 [, 2, 4, ^입니다(개행은 시퀀스 뒤에 넣은 것이므로 무시해야 합니다. ctrld두 번 클릭할 수도 있지만 출력은 입력 다음에 시작되어 혼란스러워 보입니다).

이제 우리는 시퀀스를 알고 다음과 .vimrc같은 줄을 추가할 수 있습니다.

map <C-[>[24^ :whateveryouwant

시퀀스 <C-[>는 이스케이프된 vim 표현이며 ctrl[. 그 이후에는 캐릭터가 더 이상 특별하지 않으며 그대로 입력할 수 있습니다.

이제 ctrlshiftF2vim을 시작할 때 입력한 내용의 오른쪽에 매핑됩니다.

관련 정보