편집을 위해 PuTTY -> Suse box -> vim 7.2
콤보를 사용하고 있으며 Ctrl + 화살표 콤보를 특정 작업에 다시 매핑하고 싶습니다. 그러나 어떤 이유로 Vim은 단축키를 무시하고 삽입 모드로 들어가 "C"(오른쪽)의 문자 "D"(왼쪽)를 삽입합니다.
내 키보드/터미널 구성의 어느 부분이 비난을 받고 어떻게 해결해야합니까?
터미널이 보내는 이스케이프 시퀀스를 정확히 파악하십시오. Ctrl+ 입력하여 화살표 Ctrl+V, Ctrl삽입 모드에서 + 화살표 : 이것은 선행 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 접두사 및 [
다음에 A
ppend 또는 C
hange 또는 삽입 모드로 들어가는 기타 항목이 있습니다.
^ 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