대부분의 명령을 사용하면 즉시 적용됩니다. O
그러나 명령을 사용하면 “O”가 현재 문자를 약 1 초 동안 바꾼 다음 현재 문자가 반환되고 새 줄이 삽입되어 열립니다.
나는 o
명령에 그런 문제가 없다 ( 아래 줄을 열고 삽입하십시오).
차이가 나는 경우 우분투 10.04의 그놈 터미널에서 vim
from을 사용 하고 bash
있습니다.
답변
이전에 누른 키가 ESC 인 경우 ESC O로 시작하는 이스케이프 시퀀스를 생성 할 수있는 키가 있기 때문입니다. 예를 들어 커서 키 모드에 따라 위쪽 화살표 키는 이스케이프 시퀀스 ESC O A를 생성 할 수 있습니다.
부분 이스케이프 시퀀스가 표시되면 vim은 터미널 유형에 정의 된 이스케이프 시퀀스 중 하나와 일치하는 다른 문자가 수신되는지 확인하기 위해 짧은 시간 초과를 기다립니다. 그렇지 않은 경우 문자를 별도의 키 입력으로 취급합니다. 라인이 열리기를 기다리는 동안 대문자 A를 입력하여이를 위쪽 화살표로 취급하는지 확인할 수 있습니다.
이를 제어하는 데 사용할 수있는 vim 설정이 있습니다. :set ttimeoutlen=100
이스케이프 시퀀스 시간 초과를 100ms로 변경합니다. :set noesckeys
삽입 모드에있을 때 이스케이프 시퀀스를 보내는 키 인식을 완전히 비활성화합니다. 또한 해당 모드에서 esckeys가 꺼져 있기 때문에 vi 호환 모드에는이 문제가 없습니다 vim -u NONE
. 이것이 작동 하는 이유 입니다.