Vim에서 왼쪽 Alt 키를 매핑 하시겠습니까?


12

키 조합 Right Alt+ Left Arrow<a-left>또는 로 매핑 할 수 있습니다 <m-left>. 그러나 Left Alt키 를 매핑 할 수 없습니다 .

그렇게 할 방법이 있습니까?

편집 :
명확성을 <a-left>의미하는 것은 Alt+을 의미 Left Arrow합니다.
여기서 중요한 질문 은 Vim의 키맵핑 관점 Left Alt과 차이점이 무엇 Right Alt입니까?

답변:


14

당신이 할 경우 :help key-notation정력에, 당신은 빔이 인식하는 유일한 수정이 변화, 제어, (동의어로 취급) 고도 / 메타, 맥 명령 키 것을 볼 수 있습니다. xmodmap을 사용하면 오른쪽 Alt 키를 Vim이 인식하는 새로운 수정 자에 쉽게 매핑 할 수 있지만 현재 사용중인 수정자는 없습니다. (Vim이 보는 것처럼 Linux 시스템이 Mac 명령 키 수정자를 나타낼 수 있는지 여부는 알 수 없습니다.) X가 인식하는 다른 수정자는 Mod4, Hyper 등입니다. 그들을 보거나 적어도 그들을 묶을 수 없습니다.

또 다른 옵션은 특정 키 시퀀스 (예 : Esc- [MyUniqueGarbageHere)를 생성하도록 RightAlt- 왼쪽 화살표를 정렬하는 것입니다. 이것은 확실히 할 수 있으며, Vim에게 왼쪽 Alt 키와는 다른 원하는 행동에 바인딩하도록 지시 할 수 있습니다. 이것의 단점은 각 RightAlt + Key 조합에 대해 개별적으로 수행해야한다는 것입니다. 그러나 몇 개의 키로이 작업을 수행하려는 경우 매우 적합합니다.

정확하게 구현하는 방법은 X에서 또는 Linux 콘솔에서 또는 다른 환경에서 Vim을 사용하는지 여부에 따라 다릅니다. X에서 사용하는 것에 대해 이야기한다고 가정합니다.

  1. xmodmap을 사용하여 RightAlt를 Mod3에 바인딩하십시오. X 세션이 시작될 때 한 번만 실행되도록 구성하십시오. 일부 배포판에는 이미 xmodmap 명령이 포함 된 특정 위치에 파일을로드하는 / etc / X11 / xinit / xinitrc 파일이 있습니다.

    xmodmap -e "remove Mod1 = Alt_R" -e "add Mod3 = Alt_R"
    
  2. 터미널 urxvt를 사용합니다. Xresources 유형 파일에서 키 바인딩을 정의 할 수 있습니다. ~ / .config / Xresources에서 할 수 있습니다. ~ / .config / app-defaults / URxvt에서 수행합니다. 해당 파일에 다음과 같은 줄을 넣었습니다 (정확한 구문은 파일을 넣은 파일에 민감합니다).

    URxvt.keysym.Mod3-Left:    \033<RAlt-Left>
    

    이제 새 터미널을 시작하고 ctrl-V를 입력 한 다음 RightAlt + Left를 입력하십시오. 명령 줄에 ^ [[<RAlt-Left> 문자가 표시되어야합니다. 작동합니까? 좋은.

  3. ~ / .vimrc에 다음을 입력하십시오.

    set t_Ff=^[<RAlt-Left>
    

여기서 '^ ['은 단일 이스케이프 문자입니다. 다른 각 문자 ( '<', 'R', 'A'등)는 자체입니다. vim의 "literal"키 접두어와 이스케이프를 사용하여 '^ ['를 입력하십시오 ( "literal"키가 기본적으로 무엇인지 잊어 버립니다. 아마도 ctrl-V일까요?) t_Ff는 사용되지 않은 터미널 항목입니다. . 다른 하나는 t_Fg입니다. 당신은 사용할 수있는 :set termcap터미널 항목이 할당 된보고 정력에, 그냥 사용하지 않는 일부 XX에 대한 t_XX를 사용합니다. 다음에 제시된 .vimrc 라인을 따르십시오 :

    map <t_Ff> whatever-vim-keys-you-want-it-mapped-to
    map! <t_Ff> whatever-vim-keys-you-want-it-mapped-to

직접 수행하는 것도 가능합니다.

    map ^[<RAlt-Left> whatever-vim-keys-you-want-it-mapped-to

그러나 유휴 터미널 항목을 사용하여 훨씬 안정적으로 작동하는 기술을 찾았습니다.

나는 여기에서 많은 가정을했다 : 당신이 리눅스, X 등을 사용하고 있다는 것이다. urxvt와 다른 터미널 프로그램을 사용하는 경우, 내가 설명한 것을 수행하기에 충분한 키 바인딩 기술을 제공하거나 제공하지 않을 수 있습니다. 덜 이국적인 키를 선택하면 여기에 설명 된 것과 같은 작업을 수행 할 수 있습니다. 예를 들어, RAlt-Left가 F21에 바인딩되도록 정렬 한 다음 거기서 갈 수 있습니다. 요구 사항이 무엇인지 알려주십시오.


이것은 gvim에도 적용됩니까?
글리프

특히 도움이되었습니다. lxterminal을 사용하고 vim에 alt 키를 매핑하고 싶습니다. 터미널에서 Ctrl-V를 입력 한 다음 원하는 키 콤보 (예 : Alt-T)를 입력하면 ^ [t. <At> 대신 .vimrc에서 이것을 사용하여 매핑 (^ [물론 단일 이스케이프 문자 임)을 수행했으며 완벽하게 수행되었습니다. (^ [^ T은 정확하게 Ctrl + Alt + T 결합)
elynnaie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.