<Esc> O의 속도 범프 (커서 위에 새 줄을 삽입하려면 보통에 삽입)


16

삽입 모드에있을 때 종종 Esc일반 모드 O로 들어가서 커서 위로 새 줄을 시작하고 삽입 모드로 들어가기 위해 누르 십시오.

그러나 그렇게하면 O눈에 띄는 반응이 나타나기 전에 1 초 후에 1 초 지연 됩니다. 나는 새 텍스트 문자의 특정 세트의로 시작되는 경우, 그 1 초 지연 동안 새로운 텍스트를 입력하기 시작 또한 경우 (예를 들어 j, k, m, n, o), 나는하지 않았다 다른 작업의 중간에 끝 의도적으로, 엉망진창을 만들고, 그 시점에서 내가 손상을 취소 할 때까지 합리적으로 확신 할 때까지 실행 취소 및 재실행으로 멈추어야합니다.

그 불쾌 함을 피하기 위해, 내가 입력 할 때마다 1 초 동안 일시 정지하는 습관이 생겼습니다 O. 그러나 이것은 나를 느리게하고 내가 그렇지 않은 vim 속도 악마가되는 것을 막습니다.

무엇이 원인입니까? 수정 또는 해결 방법이 있습니까?

답변:


15

이것은 터미널에서만 발생하지만 GVIM에서는 발생하지 않습니다. 그 이유는 빔 개별 유형의 키와 (즉, 동일한 키로 시작하는 ANSI 이스케이프 시퀀스를 구별 할 수 없다는 것입니다 ^[O..., <Esc>다음에 O귀하의 경우).

:help 'timeout'(및 다음 옵션) 에서 모든 기본 복잡성에 대해 읽을 수 있습니다 . 또한 문제점을 완화시키는 제안 된 구성도 있습니다.

:set timeout timeoutlen=1000 ttimeoutlen=100

3
당신은 또한 사용할 수 있습니다 set noesckeys; 이것은 삽입 모드에서 화살표 키 (및 다른 키는?)를 비활성화하는 부작용이 있으므로 모든 사람에게 해당되는 것은 아닙니다.
Martin Tournoij

2
@Carpetsmoker "set noesckeys"와 관련하여 ... 그것은 작동하지만 Insert 모드에서만 가능합니다. 나는 내가 처음부터 삽입 모드에 있다고 말했다는 것을 안다. 그러나 종종 일반 모드에서 시작하는 <Esc> O (주로 삽입 또는 일반 모드에서 시작하는지 100 % 확실하지 않은 경우)를 수행하므로 해당 경우에도 작동하는 것이 좋습니다.
돈 해치

1
@DonHatch를 사용 :nnoremap ^[O O하여 ^[를 입력 <C-v><Esc>할 수 있습니다 (로 표시 될 수도 있음 <1b>).
Martin Tournoij

5

해결 방법으로 + 대신을 ESCO사용하십시오 . +의 한 명령에 대한 일반 모드에서 풋 당신은, 다음이 완료되면 당신이 삽입 모드로 돌아갑니다.ControlOOControlO


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