OSX에서 화면을 실행할 때 command + r은 모든 화면에서 vim의 화살표 키를 엉망으로 만듭니다.


15

이것을 어떻게 풀겠습니까? 브라우저를 다시로드하기 위해 항상 명령 r을 누르면 종료되며 종종 터미널에 있습니다.

화살표 키를 다시 활성화하는 방법을 알지 못했기 때문에 현재 모든 화면을 종료하고 화면을 다시 시작하면 고통입니다.

답변:


28

좋은 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 h. Command + R이 보낸 터미널 재설정 명령은 커서 키를 기본값으로 재설정합니다.

화면을 분리하고 다시 연결하면 ncurses가 터미널 제어를 다시 수행하게되므로 원하는 모든 설정을 다시 적용하므로 물건을 정상적으로 복원 할 수있는 가장 휴대하기 쉽고 안정적인 방법 일 것입니다.

VT100 제어 코드 : http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm


또 다른 문제는 터미널 유형 혼란 정력 될 수있다, 볼 안쪽 TMUX 실행할 때 정력에 어질러 키
kynan

이 솔루션에 감사드립니다! 이것은 웹 개발자로서 나를 괴롭 혔습니다. 브라우저에서 화면을 새로 고치려면 cmd-r을 많이 누르십시오. 때로는 우연히 vim에서 cmd-r을 우연히 쳤어 야합니다. 지금까지 왜 화살표 키가 지워 졌는지 알 수 없었습니다. 그리고 hjkl purists가 거기에 있기 때문에, hjkl을 사용하지 않는 주된 이유는 삽입 모드에서 커서 이동을 사용할 수 없기 때문입니다. 나를 위해 그 문제를 해결하고 다시 생각할 것입니다.
rev

6

당신은 이것을 빠르고 쉽게 고칠 수 있습니다 :!reset


1

당신이 사용하여 ITerm를 사용하는 경우, 당신은 눌러 정력 세션 등을 얻을 수 있습니다 command+dcommand+w

왜?

command+d 터미널 창을 분할하여 원래 창을 복원합니다.

command+w 이제 방금 연 분할 창을 닫습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.