수색…


비고

서라운드 autocmd 명령

autocmd 는 추가 명령이며, 기본적으로이 동작을 원하지 않을 것입니다.

예를 들어 .vimrc 를 편집하는 동안 몇 번 다시 .vimrc 하면 vim이 느려질 수 있습니다.

여기에 증거가 있습니다.

:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save

:autocmd BufWritePost * 입력하면 출력에 모두가 표시됩니다. 둘 다 처형된다.

이 문제를 방지하려면 다음과 같이 모든 autocmd .

if has ('autocmd')       " Remain compatible with vi which doesn't have autocmd
  augroup MyDiffUpdate   " A unique name for the group.  DO NOT use the same name twice!
      autocmd!           " Clears the old autocommands for this group name
      autocmd BufWritePost * if &diff | diffupdate | endif   " Update diff after save
      " ... etc ...
  augroup END
endif

저장 후 .vimrc 자동으로 소스

$MYVIMRC 다음을 추가하십시오.

" Source vim configuration file whenever it is saved
if has ('autocmd')          " Remain compatible with earlier versions
 augroup Reload_Vimrc       " Group name.  Always use a unique name!
    autocmd!                " Clear any preexisting autocommands from this group
    autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
    autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
  augroup END
endif " has autocmd

풍모:

  • echom 은 사용자에게 무슨 일이 일어 났는지 알려주고 (또한 로그 :messages ).
  • $MYVIMRC$MYGVIMRC 는 구성 파일의 플랫폼 별 이름을 처리하며,
  • 실제 구성 파일과 만 일치합니다 (다른 디렉토리의 복사본 또는 fugitive:// diff는 무시합니다)
  • has()vim-tiny 와 같이 호환되지 않는 버전을 사용하는 경우 오류를 방지합니다.
  • autocmd! 이 파일이 다시 소스로 제공되는 경우 여러 개의 동일한 자동 명령이 생성되는 것을 방지합니다. (이름이 지정된 그룹의 모든 명령을 지우므로 그룹 이름이 중요합니다.)

파일이 다른 창에 저장되면 vimdiff보기를 새로 고칩니다.

:autocmd BufWritePost * if &diff | diffupdate | endif 


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow