일반 모드의 vim에서 이스케이프 키를 :q에 매핑

일반 모드의 vim에서 이스케이프 키를 :q에 매핑

Midnight Commandder에서 vim을 뷰어로 사용하고 있는데 파일을 빠르게 보고 닫고 싶습니다. :q아무 것도 변경되지 않은 경우에만 vim이 종료되도록 Esc 키를 일반 모드로 매핑하려면 어떻게 해야 합니까 ?

답변1

현재 vim세션에 대해서만 이를 수행하려면 다음 명령을 입력하십시오( 에서 vim). (명확한 설명을 위해 공백을 추가했습니다. 표시된 부분 외에는 공백을 입력하지 마십시오 Space.)

:mapSpaceCtrl+ VEscSpace:qCtrl+VEnterEnter

현재 터미널 세션의 나머지 부분에서만 이 작업을 수행하려면 다음 명령을 입력하십시오(터미널, 즉 셸에서). (명확성을 위해 줄 바꿈을 추가했습니다. 다음 내용을 한 줄에 모두 입력하십시오. Enter표시된 부분 외에는 입력하지 마십시오 Enter.)

E  X  I  N  I  T  =
"  :  m  a  p  Space  Ctrl+ V  Esc  Space  :  q  Ctrl+V  Enter  "  Enter

그런 다음

export EXINITEnter

변경 사항을 "영구적으로"(즉, 파일을 다시 변경할 때까지) 만들려면 위 명령( EXINIT="…"export EXINIT) 을 .bash_profile및/또는 에 입력하세요 .bashrc. (같은 줄에 함께 놓고 으로 구분할 수 있습니다 ;. 로 결합하여 단축할 수도 있습니다 export EXINIT="…".) 이는 다시 로그인하거나 새 쉘을 시작할 때까지 적용되지 않습니다. EXINIT명령이나 명령을 source넣은 파일을 입력하기만 하면 됩니다 EXINIT.

메모:bash를 기본 셸로 사용하지 않는 경우 셸에 대해 위의 내용을 수정해야 할 수도 있습니다.

또는 :map …명령을 파일에 넣어보세요 .exrc.


이것이 명확하지 않은 경우,

:지도문자열 1 문자열 2

vi( / 에서 ) 입력할 때 (명령 모드에서) 편집기가 입력한 것처럼 작동 vim하도록 매핑(번역)을 생성합니다 . 그리고 +는 /를 모두 나타내는 슈퍼 이스케이프 문자입니다 .string1string2CtrlVvivim (사실 아마도모두프로그램 또는 적어도 대부분) 다음 문자는 제어 문자가 아닌 리터럴 텍스트 문자로 해석되어야 합니다. Ctrl+ V다음에 오는 캐리지 Enter 리턴 문자는 종종 ^M; 로 표시됩니다. 그러나 a에서는 로 해석됩니다 .:map string2Enter

관련 정보