2012-11-18 3 views
3

보통 모드로 변경하려면 ESC을 누르지 않아도되기 때문에 시간이 지나면 저를 위해 작은 스크립트를 작성하고 있습니다. 그러나 나는 다음과 같은 오류를 받고 있어요 : 나는 let aunm=800를 제거하고 설정하면내 스크립트에서 오류가 발생했습니다.

Error detected while processing InsertEnter Auto commands for "*": 
E521: Number required after =: updatetime=aunm 

이 수동으로 실시 set updatetime=800가 완벽하게 작동 스크립트

let aunm=800 
au InsertEnter * let aunm_restore=&updatetime | set updatetime=aunm | au CursorHoldI * :stopinsert 
au InsertLeave * let &updatetime=aunm_restore 

입니다. 그러나 나는 필요하다면 시간을 바꾸기 위해 전역 변수를 갖고 싶다.

답변

5

사용

let &updatetime=aunm 

. set은 표현식을 허용하지 않습니다. 그런데


, 나는 코드가 지속적으로 그들을 지우지 않고 CursorHoldI 이벤트를 추가합니다 당신이 그들의 백으로 끝낼 수도 방법을 참조하십시오. 당신은 어떤 경우에는 삽입 모드가 아닌 트리거되지 않습니다

autocmd! CursorHoldI * :stopinsert 

(쾅)를 사용하거나 (단지 au InsertEnter 전에 라인)을 한 번을 추가해야합니다. 참고 :이 명령은 모두를CursorHoldI 패턴이 * 인 그룹에 포함시키지 않으므로 더 많은 정보를 입력해야 할 경우 augroup {GroupName} | au … | augroup END (둘 다 넣는 것이 더 좋습니다)에 입력해야합니다.

관련 문제