it-swarm-ko.tech

Vim에서 Ctrl + 화살표를 수정하는 방법은 무엇입니까?

편집을 위해 PuTTY -> Suse box -> vim 7.2 콤보를 사용하고 있으며 Ctrl + 화살표 콤보를 특정 작업에 다시 매핑하고 싶습니다. 그러나 어떤 이유로 Vim은 단축키를 무시하고 삽입 모드로 들어가 "C"(오른쪽)의 문자 "D"(왼쪽)를 삽입합니다.

내 키보드/터미널 구성의 어느 부분이 비난을 받고 어떻게 해결해야합니까?

27
Alex B

터미널이 보내는 이스케이프 시퀀스를 정확히 파악하십시오. Ctrl+ 입력하여 화살표 Ctrl+VCtrl삽입 모드에서 + 화살표 : 이것은 선행 ESC 문자 (vim에서 ^[로 표시됨)를 문자 그대로 삽입하고 나머지 이스케이프 시퀀스가 ​​이어집니다. 그런 다음 vim에게 이러한 이스케이프 시퀀스에 대해 다음과 같이 알려주십시오.

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

PuTTY에 Application Cursor Keys mode 에 대한 기본 설정이 있다는 것을 기억하는 것 같습니다 (이유를 잊어 버렸습니다). 먼저이 설정을 토글하는 것이 좋습니다.

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

가장 좋은 방법은 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

7
msw

여기에서 더 나은 해결책을 찾았습니다 . 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
2
trigal

이 문제와 다른 vim 키보드 문제에 대해 간단히

vim ~/.vimrc
set nocompatible
0
zainengineer