답변:
이 질문에 대한 답변은 다음과 같습니다. OSX에서 화면을 실행할 때 command + r이 모든 화면에서 vim의 화살표 키를 엉망으로 만듭니다.
복사 한 답변 :
좋은 Vim 옹호자로서, 나는 hjkl을 커서 키로 사용하는 법을 배우게 될 것이라고 생각합니다. 도중에 문제를 탐색하면서 실제 화살표 키 대신 hjkl을 사용하여 테스트하고 있음을 알기 전까지는 문제가 스스로 해결되었다고 생각했습니다.
어쨌든, 이제 진정한 대답을 얻으십시오.
모든 화면을 종료하고 다시 시작하는 대신 터미널 사이를 이동할 수있는 화면 기능을 활용할 수 있습니다. 터미널에서 화면을 분리하려면 CTRL + A CTRL + D를 누른 다음 screen -D -R을 실행하여 다시 연결하십시오. 화살표 키가 다시 작동해야합니다.
화면이 아닌 Vim에있는 경우 CTRL + Z를 입력하고 동일한 효과를 위해 fg를 입력 할 수 있습니다.
Vim에서 커서 키 문제를 해결할 수도 있지만 재설정으로 인해 다른 터미널 옵션이 변경되었을 수 있으므로 다른 임의의 디스플레이 / 키보드 문제가 발생하지 않도록 위에서 설명한대로 수행하는 것이 더 안전합니다. 어쨌든 리매핑을 원한다면 다음과 같습니다.
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
거친 세부 사항 :
Vim과 screen은 모두 ncurses 라이브러리를 사용하여 터미널을 관리합니다. VT100 호환 터미널을 제어 할 때 ncurses가 수행하는 작업 중 하나는 화살표 키를 "응용 프로그램 모드"로 전환하여 방출하는 코드를 변경하는 것입니다. 예를 들어, 위쪽 화살표 키는 Esc [A에서 Esc O A로 변경됩니다.이를 위해 내 보낸 VT100 제어 코드는 Esc [? 1 시간 Command + R이 보낸 터미널 재설정 명령은 커서 키를 기본값으로 재설정합니다.
화면을 분리하고 다시 연결하면 ncurses가 터미널 제어를 다시 수행하게되므로 원하는 모든 설정을 다시 적용하므로 물건을 정상적으로 복원 할 수있는 가장 휴대하기 쉽고 안정적인 방법 일 것입니다.
VT100 제어 코드 : http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm