vim에서 화살표 키가 자발적으로 작동을 멈춤


25

최근에 OS X 10.6 (제 생각에)에서 10.9로 업그레이드했습니다. 그 이후로에서 편집하는 동안 vim화살표 키가 "자발적으로"작동을 멈출 것 같습니다 .

어느 시점에서 좌절감에 나는 화살표 키 중 하나를 "파쇄"했고 결국 "E388 정의를 찾을 수 없습니다"오류가 표시되었습니다. 다른 모든 시간에, 나는 그것을 경험 한 화살이 갑자기 나를 찌르기 시작 했습니다!

종료했다가 다시 열면 일시적으로 문제가 해결 됩니다. 그러나 나는 그것을 막고 싶습니다 !

이것이 무엇인지 아는 사람이 있습니까? 그리고 그것을 고치는 방법?


vimrc업데이트 중에 내 기본값 이 수정 된 것 같습니다 . 내 기억이 정확하다면 이전에는 꽤 큰 파일이었습니다. 이제 여기에는 다음이 포함됩니다.

" Configuration file for vim
set modelines=0         " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible        " Use Vim defaults instead of 100% vi compatibility
set backspace=2         " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup

이러한 옵션이 아직 무엇인지 모릅니다. 내가 살펴볼 것입니다. 그러나 여기 누군가가 Google과 읽을 수있는 것보다 더 빨리 알고 있기를 바랍니다 ...


또한이 질문이 더 적합 할 수있는 Apple 중심 포럼이 있다는 것을 깨달았습니다. 따라서 이것이 OS X의 조건보다 가능성이 높으면 vimmod 가이를 마이그레이션 할 수 있습니다.
— svidgen

2
대학에서 "프라임"메인 프레임 작업을 생각 나게합니다. 교수는에 화살표 키를 사용해서는 안된다고 가르쳤다 vi. 항상 hjkl을 사용하십시오. 여기서 "화살표"키는 고대 하드웨어에 사용되었습니다.
— 레드 크리켓

OK ... 그러나 화살표 키가 작동해야합니다. 교수님의 생각에 관계없이 제가 사용해야한다고 생각합니다. 그리고 나는 때때로 편리하다고 생각합니다. 따라서 솔루션을 기대합니다.
— svidgen

1
키 리터럴을 버퍼에 삽입하면 어떻게됩니까? 삽입 모드로 들어가서 Ctrl + v를 누른 다음 화살표 키를 누르십시오. Mac의 Vim은 위쪽 화살표 키를 ^[OA, 아래쪽 ^[OB, 오른쪽 ^[OC, 왼쪽으로 표시 ^[OD합니다. 문제가 나타나는 전후에 확인
— Nathan Wallace

@NathanWallace는 귀하의 질문을 어떻게 간과했는지 확실하지 않습니다. 다음에 Mac에있을 때 시도해 보겠습니다.
— svidgen

답변:


24

에서 발견 제임스 Hodgkinson의 블로그 , 다음 명령은 나를 위해 작동합니다. vim 화면을 새로 고칩니다.

:!reset

이 대답을 어떻게 간과했는지 잘 모르겠지만 매우 유망합니다.
— svidgen

사실 ... 기사에 설명 된대로 Ctrl + R을 누르면 위의 Nathan에 대한 응답에서 언급 한 잘못된 화살표 키 매핑과 완전히 일치하는 문제가 재현됩니다. 이 경우 reset 명령이이를 해결합니다. 그리고 .. 다른 방법으로 문제를 안정적으로 재현 할 수 없으므로 이것이 가장 유용한 답입니다!
— svidgen

11

나는 또한이 문제에 몇 번 뛰어 들었다. SSH를 통해 로그인 한 다른 컴퓨터에서 GNU 화면을 실행하고있었습니다. 문제를 해결하기 위해 화면 ( Ctrl- a d)을 분리 하고 기기에서 로그 오프 한 후 다시 로그인하여을 사용하여 다시 연결했습니다 screen -x. 화면을 분리했다가 다시 연결하면 기기에서 로그 오프하지 않고도 작동 할 수 있습니다. 그래도 기억이 안나


화면 세션을 닫고 다시 시작하면 문제가 해결되었습니다.
— Eno

1
그것은 저에게 문제였습니다. 어떻게 든 screen펑크 상태에 빠졌습니다 (ssh 연결을 통해). 그 터미널을 닫고 다시 ssh screen -rd하고 트릭을 수행했습니다. 감사!
— Pierre D

@PierreD 맞습니다.이 문제는 이미 몇 번이나 발생했습니다. screen세션에서도 Detach & Reattach가 문제를 해결했습니다. 감사합니다!
— stdcerr

6

경로 /usr/share/vim/에서 .vimrc파일을 찾았습니다 ... 거기에 선을 추가했습니다

set term=ansi 

그것은 나를 위해 일했다. 이제 화살표 키가 Vim 편집기에서 제대로 작동합니다.


2
최신 Windows 10 WSL / Ubuntu 업데이트로 인해 문제가 해결되었습니다.
— 그레이 폭스

3

이것은 문제와 매우 흡사합니다. 이 기사의 제목 은 Vim의 커서 키 : You Mac'ing Me Crazy! .

발췌

Vim은 많은 상황에서 특히 빠른 편집 (특히 루트) 및 원격 서버의 파일 편집에 유용합니다. 9 개월 동안 Mac Book Pro를 사용하면서 한 가지 불편한 점은 Vim의 커서 키가 줄을 바꾸는 대신 삽입 또는 명령 모드에서 벨을 울리는 것입니다. MacPorts를 통해 버전 7로 업그레이드해도 동일한 결과가 나타납니다. 커서 키는 rxvt에서 TERM을 VT220으로 전환 한 후 작동했습니다! 단점은 구문 강조가 작동을 멈췄다는 것입니다.

다행히도 Google 검색 매개 변수에 VT220을 추가하면 Vim 문서에서 vt100-cursor-keys에 대한 참조가 나타납니다. .vimrc 파일에 다음 코드를 추가하여 문제를 해결하십시오.

    :set notimeout          " don't timeout on mappings
    :set ttimeout           " do timeout on terminal key codes
    :set timeoutlen=100     " timeout after 100 msec

같은 기사에서 귀하의 설정에 대한 또 다른 제안이 있습니다 $TERM.linux OSX 대신.

발췌

TERM 값이 원격 서버에서 선택되므로 TERM의 기본값을 linux 또는 dtterm으로 변경하는 것이 더 나은 솔루션입니다. 요즘에는 대부분의 서버가이 두 터미널 유형을 모두 지원할 것이라고 확신합니다.


흠 ... 나는 지금 더 혼란스러워한다. 전역 / 기본 .vimrc파일 이 있다고 생각했습니다 . OS X 업데이트 중에이 항목들이 이동 또는 제거 되었습니까?
— svidgen

@ svidgen-아니요 변경되지 않았다고 생각하지만 그 문제는 귀하의 것과 거의 비슷하게 들리며 해결하기가 쉽습니다. 그래서 귀하와 공유 할 것이라고 생각했습니다. 우연히도 $TERM당신을 얻을 수있었습니다.
— slm

Whelp, 이것이 가장 관련성이 높은 답변입니다. +1입니다. 불행히도 문제를 일관되게 재현 할 수 없기 때문에 아직 수정했는지 확실하지 않습니다.
— svidgen

이 수정 프로그램을 적용한 후 문제가 다시 발생했습니다. 여전히 관련 답변이며 +1은 그대로 둡니다. 그러나 추가 답변을 제공하려는 경우 위의 내 의견을 참조하십시오.
— svidgen

0

업데이트를 축하합니다. 나는 주말 동안 내 자신의 업데이트를 수행하고 내 자신의 이상한 키보드 문제를 처리하고 있습니다.

여기에 필요한 몇 가지 사항이 있습니다.

  • 오래된 Logitech 게임 소프트웨어를 제거하고 업그레이드하십시오. 이 작업을 수행하기 전에 사각형 및 중괄호를 사용하는 데 문제가있었습니다. 특수 키는 종종 VIM 컨텍스트에서 esc- [시퀀스를 전송하므로 관련이있을 수 있습니다.
  • 시스템 환경 설정 : 보안 및 개인 정보 : 개인 정보 : 접근성으로 이동하여 몇 가지 앱 (synergy_server 및 Logitech 게임 소프트웨어)을 활성화하십시오. 이 변경 이전에는 시너지 효과가있는 다른 컴퓨터를 제어하거나 G11에서 매크로를 사용할 수 없었습니다. 나는 이것이 당신을위한 직접적인 연결인지 의심하지만 접근성 옵션은 새로운 것이며 귀하의 다른 응용 프로그램에 적용될 수 있습니다.

0

.sql파일에서 작업하는 경우vim언급하지 않은 도움이 될 수 있습니다. 나는 다른 날에 이것을 처리했습니다.

파일에서 ~/.vimrc

let g:omni_sql_no_default_maps = 1

이 특정 문제는 여기에서 논의 됩니다

.sql파일 에이 문제가 발생하지 않으면 vim사과드립니다 vim. 문제가 발생할 때 내 매핑을 확인하는 것이 유일한 생각입니다 .

:map Ctrl V → 화살표를 사용할 수 없게되면 해당 명령을 수행하고 매핑이 사라 졌는지 확인하십시오. 만약 그렇다면, 이것은 파기 시작할 곳을 제공합니다.


0

SSH 세션 에서이 문제가 있었고 로그 아웃 한 다음 다시 로그인하여 해결했습니다.

exit
ssh ...

무게를 주셔서 감사합니다. 선택한 답변은 일관되게 나를 위해 일했습니다. 사용해 보셨습니까?
— svidgen

예, 수락 된 솔루션이 Ubuntu 18에서 작동하지 않았습니다. vim (동일한 ssh 세션에서)을 제거하고 다시 설치했으며 주사위도 없습니다. 로그 아웃 한 후 다시 복원 된 화살표 기능 만 있습니다.
— duhaime

0

Windows에서 "시스템 환경 변수"를 사용할 때이 문제가 발생 TERM했습니다 xterm-256color. vim변수를 다시 삭제하면 문제가 사라지고 정상으로 돌아 왔습니다.

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