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
와 함께 쓰임