Vim에서 Ctrl + 화살표를 수정하는 방법? 어떤 이유로 Vim은 바로 가기를 무시하고

Putty -> Suse box -> vim 7.2편집을 위해 콤보를 사용 하고 Ctrl + 화살표 콤보를 특정 작업에 다시 매핑하려고합니다. 그러나 어떤 이유로 Vim은 바로 가기를 무시하고 삽입 모드로 들어가고 “C”(오른쪽)의 문자 “D”(왼쪽)를 삽입합니다.

키보드 / 터미널 구성의 어느 부분을 비난하고 수정하는 방법은 무엇입니까?



답변

삽입 모드에서 + , + 화살표를 Ctrl입력 하여 터미널이 + 화살표에 어떤 이스케이프 시퀀스를 전송하는지 정확히 파악 하십시오. 이렇게하면 선행 문자 ( vim으로 표시)가 문자 그대로 삽입 되고 나머지 이스케이프 시퀀스가 ​​이어집니다. 그런 다음 vim에게 이러한 이스케이프 시퀀스에 대해 다음과 같이 알려주십시오.CtrlVCtrlESC^[

map <ESC>[5D <C-Left>
map <ESC>[5C <C-Right>
map! <ESC>[5D <C-Left>
map! <ESC>[5C <C-Right>

Putty에는 불편한 Application Cursor Keys 모드에 대한 기본 설정이 있습니다 (이유는 잊어 버렸습니다).이 설정을 먼저 전환해야 할 수도 있습니다.

이스케이프 시퀀스는 터미널마다 다르지만 충돌 (즉, 다른 터미널의 다른 키에 해당하는 이스케이프 시퀀스)은 드물기 때문에 특정 터미널 유형에만 매핑을 적용 할 필요가 없습니다.


답변

가장 좋은 방법은 PuTTY의 응용 프로그램 커서 키 모드 구성 을 보는 것입니다 .

기본 시퀀스 ESC는 접두사로 전송 된 [다음 Append 또는 Change 또는 삽입 모드로 전환되는 다른 항목이 이어집니다 .

Gilles 팔로 잉 팔로우

^ V 이스케이프의 약간 더 명확한 버전은 od (1)로 볼 수 있습니다. 여기 내 터미널에서 ^ Up, ^ Down, ^ Right, ^ Left를 입력합니다.

$ od -a
0000000 esc   [   1   ;   5   A esc   [   1   ;   5   B esc   [   1   ;
0000020   5   C esc   [   1   ;   5   D

+를 ^[[1;5A누르면 터미널이 전송 됩니다.Ctrl


답변

더 나은 해결책을 찾았습니다 :
http://vim.wikia.com/wiki/Fix_arrow_keys_that_display_A_B_C_D_on_remote_shell

이 문자열을 .vimrc파일 에 넣으십시오 .

:set term=cons25

최신 정보

이 파일을으로 복사하여 /home이름을 바꾸십시오 .vimrc.

/usr/share/vim/vim_VERSION_/vimrc_example.vim

답변

내 이와 다른 vim 키보드 문제에 대해 간단하게

vim ~/.vimrc
set nocompatible