vim에서 Enter 키를 누르기 전에 명령줄 맵(cmap)을 확장하지 마세요.

vim에서 Enter 키를 누르기 전에 명령줄 맵(cmap)을 확장하지 마세요.

나는 가지고있다

cmap w!! %!sudo tee > /dev/null %

.vimrc.

wvim 명령줄(나중에 ) :에 a를 입력 하면 커서가 w오른쪽으로 이동하기 전에 몇 초 동안 그대로 유지됩니다. 이것은 때때로 내 생각의 흐름을 방해하고 몇 초 동안 혼란스럽게 만듭니다. w명령을 누를 때마다 일시적으로 "먹지" 않도록 명령 다음에 Enter를 누를 때 매핑이 발생하도록 하는 방법이 있습니까 ?

(그런데 이 매핑은 w!!검색 쿼리를 입력할 때도 확장되는데, 실제로는 짜증나지는 않지만( w지연과 유사하다는 점을 제외하면) 이상하게 보입니다.)

답변1

방금 시도했습니다.

cabbrev w!! %!sudo tee > /dev/null %

스페이스나 엔터를 누를 때까지 확장을 지연하지만 이상하게 비밀번호 프롬프트를 씁니다.~ 위에명령 확장으로 명령줄은 다음과 같습니다.

Password:ee > /dev/null %

(표시 오류를 무시하면 제대로 작동합니다.)

답변2

다음 명령을 사용하여 이 동작을 변경할 수 있습니다.timeout그리고timeoutlen옵션. 인용하다문서:

'timeout' 옵션이 켜져 있으면(기본값) Vim은 1초만(또는 'timeoutlen' 옵션에 지정된 기간 동안) 기다립니다. 이후에는 캐릭터가 그렇게 해석될 것이라고 가정합니다.

관련 정보