.vimrc에서 ALT 키를 매핑하는 방법은 무엇입니까?

.vimrc에서 ALT 키를 매핑하는 방법은 무엇입니까?

삽입 모드로 전환하지 않고 빈 줄을 추가하기 위해 및 ALT-o매핑을 시도했습니다 ALT-O.o<ESC>o<ESC>

나는 내에서 다음을 시도했습니다.vimrc

map <M-o> o<ESC>
map <M-O> O<ESC>

그리고

map <ALT-o> o<ESC>
map <ALT-O> O<ESC>

그리고 (아래 제안 사항)

map <A-o> o<ESC>
map <A-O> O<ESC>

그러나 그들 중 누구도 일하지 않았습니다. ALT-o정의되지 않은 것처럼 일반적인 동작을 제공합니다 .

파일을 변경하는 것은 이번이 처음 .vimrc이고 다양한 키의 위치를 ​​지정하는 방법을 알려주는 문서를 찾을 수 없습니다. 하지만 .vimrc다음을 포함하여 내 파일이 읽고 있는지 확인할 수 있습니다.

map <Enter> ihello<ESC>

이는 <Enter>삽입에 성공적으로 매핑 hello되고 명령 모드로 돌아갑니다.

나는 vim과 cygwin을 사용하고 있습니다.

답변1

키를 누를 때 터미널이 보내는 내용을 보려면 삽입 모드로 전환하고 을 누른 Ctrl+V다음 키를 누릅니다. 대부분의 터미널의 키는 첫 번째 문자만 제어 문자인 이스케이프 시퀀스를 전송하므로 Ctrl+V다음 문자가 문자 그대로 삽입되므로 이 방법으로 전체 이스케이프 시퀀스를 삽입할 수 있습니다.

다른 터미널은 특정 키 조합에 대해 다른 이스케이프 시퀀스를 보냅니다. 많은 터미널이 and() ^OCtrl+O동일한 문자를 보냅니다 Ctrl+Shift+O. 만약 그렇다면 Vim은 이를 구별할 수 없습니다.

Cygwin을 사용하고 있다고 언급하셨는데, 어떤 터미널에서 Vim을 실행하고 있는지가 가장 관련성이 높은 정보입니다. 기본 Windows 콘솔을 사용하는 경우 더 나은 터미널을 구입하십시오. 나는 추천한다밍 TTYX 외부의 Windows 터미널에서 Cygwin 텍스트 모드 애플리케이션을 실행하는 경우, Cygwin의 Windows 기본 RXVT 및퍼티세그나쁘지도 않습니다. (반품콘솔 2Windows 콘솔 응용 프로그램을 실행하지만 이는 완전히 주제에서 벗어났습니다.)

답변2

디스플레이 (터미널에 입력)가 뒤 Control+V따르면 이 작은 스크립트를 사용하여 문제를 해결할 수 있습니다.ALT-x^[xvim.wikia.com:

for i in range(97,122)
  let c = nr2char(i)
  exec "map \e".c." <M-".c.">"
  exec "map! \e".c." <M-".c.">"
endfor

모든 Alt 키 매핑을 얻으려면 .vimrc에 추가하세요.

답변3

이것은 Ubuntu 16.04 xfce 터미널(및 alacritty Rust 터미널)에서 작동합니다.

Ultisnip 스니펫 트리거를 다음으로 설정합니다 Meta-/(emacs 스니펫과 동일).

let g:UltiSnipsExpandTrigger="^[/"

^[/이제 vim을 입력합니다 .

삽입 모드에서Ctrl-V Alt-/

( 내 컴퓨터 키보드의 키 Meta입니다 )Alt

답변4

M(eta) 키는 창 버튼입니다. 이것은 단지 입니다 <A-o>.

관련 정보