Skip to content

Vim:AutoCmd

vim은 특정 이벤트가 발생할 때 자동으로 명령을 수행할 수 있는데, 이를 au[tocmd]로 지정할 수 있다.

버퍼 읽기/시작하기

  • BufNewFile: 새 파일을 만들어서 편집하기 시작함
  • BufReadPre: 파일을 읽기 전, 새 버퍼를 편집하기 시작함
  • BufRead: 파일을 읽고 새 버퍼를 편집함
  • BufReadPost: 위와 같이 파일을 읽고 새 버퍼를 편집함 (차이가?)
  • BufReadCmd: 새 버퍼를 시작하는 명령을 받았을 때

파일 읽기

  • FileReadPre: :read 명령으로 새 파일을 읽기 직전
  • FileReadPost: :read 명령으로 새 파일을 읽은 직후
  • FileReadCmd: :read 명령을 입력받는 때

버퍼 전체 쓰기

  • BufWrite: 전체 버퍼를 파일에 쓰기 시작할 때
  • BufWritePre: 전체 버퍼를 파일에 쓰기 시작할 때
  • BufWritePost: 전체 버퍼를 파일에 쓴 후
  • BufWriteCmd: 쓰기 명령을 받았을 때, 아직 파일에는 쓰기 전

버퍼 일부 쓰기

  • FileWritePre: 버퍼의 일부를 파일에 쓰기 시작함
  • FileWritePre: 버퍼의 일부를 파일에 쓰기 시작함
  • FileWriteCmd: 버퍼의 일부를 파일에 쓰는 명령을 받을 때
  • FileAppendPre: 파일의 뒤에 내용을 덧붙일 때
  • FileAppendPost: 파일의 뒤에 내용을 추가한 후
  • FileAppendCmd: 파일에 추가 명령을 받을 때

버퍼 관련

  • BufAdd: 새 버퍼가 버퍼 목록에 추가된 직후
  • BufCreate: 새 버퍼가 생성되어 버퍼 목록에 추가된 직후
  • BufDelete: 버퍼 목록에서 버퍼가 삭제되기 전
  • BufWipeout: 버퍼를 완전히 삭제하기 직전
  • BufFilePre: 현재 버퍼의 이름을 바꾸기 직전
  • BufFilePost: 현재 버퍼의 이름이 바뀐 직후
  • BufEnter: 버퍼에 진입한 직후
  • BufLeave: 버퍼를 떠나 다른 버퍼로 옮기기 직전
  • BufWinEnter: 화면 창에 버퍼가 표시된 후
  • BufWinLeave: 창에서 버퍼가 제거되기 직전
  • BufUnload: 버퍼가 언로드되기 전
  • BufHidden: 버퍼가 숨겨진 직후
  • BufNew: 새 버퍼를 만든 직후

스왑

  • SwapExists: 스왑파일이 있을 때

옵션

  • FileType: filetype옵션이 세팅될 때
  • Syntax: syntax옵션이 세팅될 때
  • EncodingChanged: encoding 옵션이 세팅될 때
  • TermChanged: term의 값이 바뀔 때

시작 및 종료

  • VimEnter: vim 시작 후
  • GUIEnter: GUI가 잘 시작된 후
  • TermResponse: 터미널 응답 t_RV을 받은 후
  • VimLeavePre: vim 종료 직전, viminfo 파일에 쓰기 전
  • VimLeave: 종료 직전, viminfo 파일을 쓴 후

그 외

  • FileChangedShell: Vim에서 파일을 편집한 이후, 이 파일이 변경됐음을 vim이 감지했을 때
  • FileChangedShellPost: 편집이 시작된 후 파일이 변경되었을 때
  • FileChangedRO: 읽기 전용 파일에 변경을 시작하려 할 때
  • ShellCmdPost: 쉘 명령을 실행한 후
  • ShellFilterPost: 쉘 명령으로 필터링한 후
  • FuncUndefined: 정의되지 않은 사용자 함수를 호출할 때
  • SpellFileMissing: 존재하지 않는 문법 파일을 사용하려할 때
  • SourcePre: vim 스크립트를 반입하기 직전
  • SourceCmd: 명령모드에서 vim 스크립트를 반입할 때
  • VimResized: vim 창의 크기가 변경되었을 때
  • FocusGained: vim이 입력 포커스를 받을 때
  • FocusLost: 입력 포커스를 잃을 때
  • CursorHold: 특정 시간 동안 아무 것도 눌러지지 않을 때
  • CursorHoldI: 입력 모드에서 특정 시간 동안 아무 키도 눌러지지 않을 때
  • CursorMoved: 일반 모드에서 커서가 움직일 때
  • CursorMovedI: 입력모드에서 커서가 움직일 때
  • WinEnter: 다른 창으로 들어갈 때
  • WinLeave: 창을 떠날 때
  • TabEnter: vim 창 내의 특정 탭으로 들어갈 때
  • TabLeave: 특정 탭을 떠날 때
  • ColorScheme: 색상 스킴이 변경될 때
  • RemoteReply: 서버의 응답을 vim이 받았을 때
  • QuickFixCmdPre: quickfix명령이 실행되기 전
  • QuickFixCmdPost: quickfix명령이 실행된 후
  • SessionLoadPost: 세션 파일의 로딩이 끝난 후
  • MenuPopup: 메뉴 팝업을 보여준 후
  • User: :doautocmd와 함께 쓰임

See also