diff options
author | Bram Moolenaar <Bram@vim.org> | 2005-12-07 21:04:31 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2005-12-07 21:04:31 +0000 |
commit | 4e330bbf216ca93827778c2dcc8aa1a8f053c9e1 (patch) | |
tree | 896673ec2c86f23e9bd8e2e64c7357567b58f504 /runtime/doc/autocmd.txt | |
parent | b815dac06188da69169b7bcf765cdd6c541588ce (diff) | |
download | vim-git-4e330bbf216ca93827778c2dcc8aa1a8f053c9e1.tar.gz |
updated for version 7.0164
Diffstat (limited to 'runtime/doc/autocmd.txt')
-rw-r--r-- | runtime/doc/autocmd.txt | 757 |
1 files changed, 442 insertions, 315 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index 37a51ad99..6deeaeaf7 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -1,4 +1,4 @@ -*autocmd.txt* For Vim version 7.0aa. Last change: 2005 Nov 21 +*autocmd.txt* For Vim version 7.0aa. Last change: 2005 Dec 07 VIM REFERENCE MANUAL by Bram Moolenaar @@ -169,18 +169,195 @@ See |:verbose-cmd| for more information. ============================================================================== 5. Events *autocmd-events* *E215* *E216* +You can specify a comma-separated list of event names. No white space can be +used in this list. The command applies to all the events in the list. + +For READING FILES there are four kinds of events possible: + BufNewFile starting to edit a non-existent file + BufReadPre BufReadPost starting to edit an existing file + FilterReadPre FilterReadPost read the temp file with filter output + FileReadPre FileReadPost any other file read +Vim uses only one of these four kinds when reading a file. The "Pre" and +"Post" events are both triggered, before and after reading the file. + +Note that the autocommands for the *ReadPre events and all the Filter events +are not allowed to change the current buffer (you will get an error message if +this happens). This is to prevent the file to be read into the wrong buffer. + +Note that the 'modified' flag is reset AFTER executing the BufReadPost +and BufNewFile autocommands. But when the 'modified' option was set by the +autocommands, this doesn't happen. + +You can use the 'eventignore' option to ignore a number of events or all +events. *autocommand-events* *{event}* Vim recognizes the following events. Vim ignores the case of event names (e.g., you can use "BUFread" or "bufread" instead of "BufRead"). +First an overview by function with a short explanation. Then the list +alpabetically with full explanations |autocmd-events-abc|. + +Name triggered by ~ + + Reading +|BufNewFile| starting to edit a file that doesn't exist +|BufReadPre| starting to edit a new buffer, before reading the file +|BufRead| starting to edit a new buffer, after reading the file +|BufReadPost| starting to edit a new buffer, after reading the file +|BufReadCmd| before starting to edit a new buffer |Cmd-event| + +|FileReadPre| before reading a file with a ":read" command +|FileReadPost| after reading a file with a ":read" command +|FileReadCmd| before reading a file with a ":read" comman |Cmd-event| + +|FilterReadPre| before reading a file from a filter command +|FilterReadPost| after reading a file from a filter command + +|StdinReadPre| before reading from stdin into the buffer +|StdinReadPost| After reading from the stdin into the buffer + + Writing +|BufWrite| starting to write the whole buffer to a file +|BufWritePre| starting to write the whole buffer to a file +|BufWritePost| after writing the whole buffer to a file +|BufWriteCmd| before writing the whole buffer to a file |Cmd-event| + +|FileWritePre| starting to write part of a buffer to a file +|FileWritePost| after writing part of a buffer to a file +|FileWriteCmd| before writing part of a buffer to a file |Cmd-event| + +|FileAppendPre| starting to append to a file +|FileAppendPost| after appending to a file +|FileAppendCmd| before appending to a file |Cmd-event| + +|FilterWritePre| starting to write a file for a filter command or diff +|FilterWritePost| after writing a file for a filter command or diff + + Buffers +|BufAdd| just after adding a buffer to the buffer list +|BufCreate| just after adding a buffer to the buffer list +|BufDelete| before deleting a buffer from the buffer list +|BufWipeout| before completely deleting a buffer + +|BufFilePre| before changing the name of the current buffer +|BufFilePost| after changing the name of the current buffer + +|BufEnter| after entering a buffer +|BufLeave| before leaving to another buffer +|BufWinEnter| after a buffer is displayed in a window +|BufWinLeave| before a buffer is removed from a window + +|BufUnload| before unloading a buffer +|BufHidden| just after a buffer has become hidden +|BufNew| just after creating a new buffer + +|SwapExists| detected an existing swap file + + Options +|FileType| when the 'filetype' option has been set +|Syntax| when the 'syntax' option has been set +|EncodingChanged| after the 'encoding' option has been changed +|TermChanged| after the value of 'term' has changed + + Startup and exit +|VimEnter| after doing all the startup stuff +|GUIEnter| after starting the GUI successfully +|TermResponse| after the termainal response to |t_RV| is received + +|VimLeavePre| before exiting Vim, before writing the viminfo file +|VimLeave| before exiting Vim, after writing the viminfo file + + Various +|FileChangedShell| Vim notices that a file changed since editing started +|FileChangedRO| before making the first change to a read-only file + +|FuncUndefined| a user function is used but it isn't defined + +|FocusGained| Vim got input focus +|FocusLost| Vim lost input focus +|CursorHold| the user doesn't press a key for a while + +|WinEnter| after entering another window +|WinLeave| before leaving a window +|CmdwinEnter| after entering the command-line window +|CmdwinLeave| before leaving the command-line window + +|InsertEnter| starting Insert mode +|InsertChange| when typing <Insert> while in Insert or Replace mode +|InsertLeave| when leaving Insert mode + +|ColorScheme| after loading a color scheme + +|RemoteReply| a reply from a server Vim was received + +|QuickFixCmdPre| before a quickfix command is run +|QuickFixCmdPost| after a quickfix command is run + +|SessionLoadPost| after loading a session file + +|MenuPopup| just before showing the popup menu + +|User| to be used in combination with ":doautocmd" + + +The alphabetical list of autocommand events: *autocmd-events-abc* + + *BufCreate* *BufAdd* +BufAdd or BufCreate Just after creating a new buffer which is + added to the buffer list, or adding a buffer + to the buffer list. + Also used just after a buffer in the buffer + list has been renamed. + The BufCreate event is for historic reasons. + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being created "<afile>". + *BufDelete* +BufDelete Before deleting a buffer from the buffer list. + The BufUnload may be called first (if the + buffer was loaded). + Also used just before a buffer in the buffer + list is renamed. + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being deleted "<afile>". + *BufEnter* +BufEnter After entering a buffer. Useful for setting + options for a file type. Also executed when + starting to edit a buffer, after the + BufReadPost autocommands. + *BufFilePost* +BufFilePost After changing the name of the current buffer + with the ":file" or ":saveas" command. + *BufReadCmd* +BufFilePre Before changing the name of the current buffer + with the ":file" or ":saveas" command. + *BufHidden* +BufHidden Just after a buffer has become hidden. That + is, when there are no longer windows that show + the buffer, but the buffer is not unloaded or + deleted. Not used for ":qa" or ":q" when + exiting Vim. + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being unloaded "<afile>". + *BufLeave* +BufLeave Before leaving to another buffer. Also when + leaving or closing the current window and the + new current window is not for the same buffer. + Not used for ":qa" or ":q" when exiting Vim. + *BufNew* +BufNew Just after creating a new buffer. Also used + just after a buffer has been renamed. When + the buffer is added to the buffer list BufAdd + will be triggered too. + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being created "<afile>". *BufNewFile* BufNewFile When starting to edit a file that doesn't exist. Can be used to read in a skeleton file. - *BufReadPre* *E200* *E201* -BufReadPre When starting to edit a new buffer, before - reading the file into the buffer. Not used - if the file doesn't exist. *BufRead* *BufReadPost* BufRead or BufReadPost When starting to edit a new buffer, after reading the file into the buffer, before @@ -190,63 +367,49 @@ BufRead or BufReadPost When starting to edit a new buffer, after This does NOT work for ":r file". Not used when the file doesn't exist. Also used after successfully recovering a file. - *BufReadCmd* + *BufReadPre* *E200* *E201* BufReadCmd Before starting to edit a new buffer. Should read the file into the buffer. |Cmd-event| *BufFilePre* -BufFilePre Before changing the name of the current buffer - with the ":file" or ":saveas" command. - *BufFilePost* -BufFilePost After changing the name of the current buffer - with the ":file" or ":saveas" command. - *FileReadPre* -FileReadPre Before reading a file with a ":read" command. - *FileReadPost* -FileReadPost After reading a file with a ":read" command. - Note that Vim sets the '[ and '] marks to the - first and last line of the read. This can be - used to operate on the lines just read. - *FileReadCmd* -FileReadCmd Before reading a file with a ":read" command. - Should do the reading of the file. |Cmd-event| - *FilterReadPre* *E135* -FilterReadPre Before reading a file from a filter command. - Vim checks the pattern against the name of - the current buffer, not the name of the - temporary file that is the output of the - filter command. - Not triggered when 'shelltemp' is off. - *FilterReadPost* -FilterReadPost After reading a file from a filter command. - Vim checks the pattern against the name of - the current buffer as with FilterReadPre. - Not triggered when 'shelltemp' is off. - *FileType* -FileType When the 'filetype' option has been set. - <afile> can be used for the name of the file - where this option was set, and <amatch> for - the new value of 'filetype'. - See |filetypes|. - *Syntax* -Syntax When the 'syntax' option has been set. - <afile> can be used for the name of the file - where this option was set, and <amatch> for - the new value of 'syntax'. - See |:syn-on|. - *StdinReadPre* -StdinReadPre Before reading from stdin into the buffer. - Only used when the "-" argument was used when - Vim was started |--|. - *StdinReadPost* -StdinReadPost After reading from the stdin into the buffer, - before executing the modelines. Only used - when the "-" argument was used when Vim was - started |--|. +BufReadPre When starting to edit a new buffer, before + reading the file into the buffer. Not used + if the file doesn't exist. + *BufUnload* +BufUnload Before unloading a buffer. This is when the + text in the buffer is going to be freed. This + may be after a BufWritePost and before a + BufDelete. Also used for all buffers that are + loaded when Vim is going to exit. + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being unloaded "<afile>". + *BufWinEnter* +BufWinEnter After a buffer is displayed in a window. This + can be when the buffer is loaded (after + processing the modelines), when a hidden + buffer is displayed in a window (and is no + longer hidden) or a buffer already visible in + a window is also displayed in another window. + *BufWinLeave* +BufWinLeave Before a buffer is removed from a window. + Not when it's still visible in another window. + Also triggered when exiting. It's triggered + before BufUnload or BufHidden. + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being unloaded "<afile>". + *BufWipeout* +BufWipeout Before completely deleting a buffer. The + BufUnload and BufDelete events may be called + first (if the buffer was loaded and was in the + buffer list). Also used just before a buffer + is renamed (also when it's not in the buffer + list). + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being deleted "<afile>". *BufWrite* *BufWritePre* BufWrite or BufWritePre Before writing the whole buffer to a file. - *BufWritePost* -BufWritePost After writing the whole buffer to a file - (should undo the commands for BufWritePre). *BufWriteCmd* BufWriteCmd Before writing the whole buffer to a file. Should do the writing of the file and reset @@ -254,42 +417,68 @@ BufWriteCmd Before writing the whole buffer to a file. 'cpo' and writing to another file |cpo-+|. The buffer contents should not be changed. |Cmd-event| - *FileWritePre* -FileWritePre Before writing to a file, when not writing the - whole buffer. Use the '[ and '] marks for the - range of lines. - *FileWritePost* -FileWritePost After writing to a file, when not writing the - whole buffer. - *FileWriteCmd* -FileWriteCmd Before writing to a file, when not writing the - whole buffer. Should do the writing to the - file. Should not change the buffer. Use the - '[ and '] marks for the range of lines. - |Cmd-event| - *FileAppendPre* -FileAppendPre Before appending to a file. Use the '[ and '] - marks for the range of lines. - *FileAppendPost* -FileAppendPost After appending to a file. + *BufWritePost* +BufWritePost After writing the whole buffer to a file + (should undo the commands for BufWritePre). + *CmdwinEnter* +CmdwinEnter After entering the command-line window. + Useful for setting options specifically for + this special type of window. This is + triggered _instead_ of BufEnter and WinEnter. + <afile> is set to a single character, + indicating the type of command-line. + |cmdwin-char| + *CmdwinLeave* +CmdwinLeave Before leaving the command-line window. + Useful to clean up any global setting done + with CmdwinEnter. This is triggered _instead_ + of BufLeave and WinLeave. + <afile> is set to a single character, + indicating the type of command-line. + |cmdwin-char| + *ColorScheme* +ColorScheme After loading a color scheme. |:colorscheme| + *CursorHold* +CursorHold When the user doesn't press a key for the time + specified with 'updatetime'. Not re-triggered + until the user has pressed a key (i.e. doesn't + fire every 'updatetime' ms if you leave Vim to + make some coffee. :) See |CursorHold-example| + for previewing tags. + This event is only triggered in Normal mode. + Note: Interactive commands cannot be used for + this event. There is no hit-enter prompt, + the screen is updated directly (when needed). + Note: In the future there will probably be + another option to set the time. + Hint: to force an update of the status lines + use: > + :let &ro = &ro +< {only on Amiga, Unix, Win32, MSDOS and all GUI + versions} + *EncodingChanged* +EncodingChanged Fires off after the 'encoding' option has been + changed. Useful to set up fonts, for example. *FileAppendCmd* FileAppendCmd Before appending to a file. Should do the appending to the file. Use the '[ and '] marks for the range of lines.|Cmd-event| - *FilterWritePre* -FilterWritePre Before writing a file for a filter command or - making a diff. - Vim checks the pattern against the name of - the current buffer, not the name of the - temporary file that is the output of the - filter command. - Not triggered when 'shelltemp' is off. - *FilterWritePost* -FilterWritePost After writing a file for a filter command or - making a diff. - Vim checks the pattern against the name of - the current buffer as with FilterWritePre. - Not triggered when 'shelltemp' is off. + *FileAppendPost* +FileAppendPost After appending to a file. + *FileAppendPre* +FileAppendPre Before appending to a file. Use the '[ and '] + marks for the range of lines. + *FileChangedRO* +FileChangedRO Before making the first change to a read-only + file. Can be used to check-out the file from + a source control system. Not triggered when + the change was caused by an autocommand. + This event is triggered when making the first + change in a buffer or the first change after + 'readonly' was set, + just before the change is applied to the text. + WARNING: If the autocommand moves the cursor + the effect of the change is undefined. *FileChangedShell* FileChangedShell When Vim notices that the modification time of a file has changed since editing started. @@ -319,17 +508,64 @@ FileChangedShell When Vim notices that the modification time of commands for the FileChangedShell event no other FileChangedShell event will be triggered. - *FileChangedRO* -FileChangedRO Before making the first change to a read-only - file. Can be used to check-out the file from - a source control system. Not triggered when - the change was caused by an autocommand. - This event is triggered when making the first - change in a buffer or the first change after - 'readonly' was set, - just before the change is applied to the text. - WARNING: If the autocommand moves the cursor - the effect of the change is undefined. + *FileEncoding* +FileEncoding Obsolete. It still works and is equivalent + to |EncodingChanged|. + *FileReadCmd* +FileReadCmd Before reading a file with a ":read" command. + Should do the reading of the file. |Cmd-event| + *FileReadPost* +FileReadPost After reading a file with a ":read" command. + Note that Vim sets the '[ and '] marks to the + first and last line of the read. This can be + used to operate on the lines just read. + *FileReadPre* +FileReadPre Before reading a file with a ":read" command. + *FileType* +FileType When the 'filetype' option has been set. + <afile> can be used for the name of the file + where this option was set, and <amatch> for + the new value of 'filetype'. + See |filetypes|. + *FileWriteCmd* +FileWriteCmd Before writing to a file, when not writing the + whole buffer. Should do the writing to the + file. Should not change the buffer. Use the + '[ and '] marks for the range of lines. + |Cmd-event| + *FileWritePost* +FileWritePost After writing to a file, when not writing the + whole buffer. + *FileWritePre* +FileWritePre Before writing to a file, when not writing the + whole buffer. Use the '[ and '] marks for the + range of lines. + *FilterReadPost* +FilterReadPost After reading a file from a filter command. + Vim checks the pattern against the name of + the current buffer as with FilterReadPre. + Not triggered when 'shelltemp' is off. + *FilterReadPre* *E135* +FilterReadPre Before reading a file from a filter command. + Vim checks the pattern against the name of + the current buffer, not the name of the + temporary file that is the output of the + filter command. + Not triggered when 'shelltemp' is off. + *FilterWritePost* +FilterWritePost After writing a file for a filter command or + making a diff. + Vim checks the pattern against the name of + the current buffer as with FilterWritePre. + Not triggered when 'shelltemp' is off. + *FilterWritePre* +FilterWritePre Before writing a file for a filter command or + making a diff. + Vim checks the pattern against the name of + the current buffer, not the name of the + temporary file that is the output of the + filter command. + Not triggered when 'shelltemp' is off. *FocusGained* FocusGained When Vim got input focus. Only for the GUI version and a few console versions where this @@ -345,183 +581,53 @@ FuncUndefined When a user function is used but it isn't when it's used. Both <amatch> and <afile> are set to the name of the function. See |autoload-functions|. - *CursorHold* -CursorHold When the user doesn't press a key for the time - specified with 'updatetime'. Not re-triggered - until the user has pressed a key (i.e. doesn't - fire every 'updatetime' ms if you leave Vim to - make some coffee. :) See |CursorHold-example| - for previewing tags. - This event is only triggered in Normal mode. - Note: Interactive commands cannot be used for - this event. There is no hit-enter prompt, - the screen is updated directly (when needed). - Note: In the future there will probably be - another option to set the time. - Hint: to force an update of the status lines - use: > - :let &ro = &ro -< {only on Amiga, Unix, Win32, MSDOS and all GUI - versions} - *BufEnter* -BufEnter After entering a buffer. Useful for setting - options for a file type. Also executed when - starting to edit a buffer, after the - BufReadPost autocommands. - *BufLeave* -BufLeave Before leaving to another buffer. Also when - leaving or closing the current window and the - new current window is not for the same buffer. - Not used for ":qa" or ":q" when exiting Vim. - *BufWinEnter* -BufWinEnter After a buffer is displayed in a window. This - can be when the buffer is loaded (after - processing the modelines), when a hidden - buffer is displayed in a window (and is no - longer hidden) or a buffer already visible in - a window is also displayed in another window. - *BufWinLeave* -BufWinLeave Before a buffer is removed from a window. - Not when it's still visible in another window. - Also triggered when exiting. It's triggered - before BufUnload or BufHidden. - NOTE: When this autocommand is executed, the - current buffer "%" may be different from the - buffer being unloaded "<afile>". - *BufUnload* -BufUnload Before unloading a buffer. This is when the - text in the buffer is going to be freed. This - may be after a BufWritePost and before a - BufDelete. Also used for all buffers that are - loaded when Vim is going to exit. - NOTE: When this autocommand is executed, the - current buffer "%" may be different from the - buffer being unloaded "<afile>". - *BufHidden* -BufHidden Just after a buffer has become hidden. That - is, when there are no longer windows that show - the buffer, but the buffer is not unloaded or - deleted. Not used for ":qa" or ":q" when - exiting Vim. - NOTE: When this autocommand is executed, the - current buffer "%" may be different from the - buffer being unloaded "<afile>". - *BufNew* -BufNew Just after creating a new buffer. Also used - just after a buffer has been renamed. When - the buffer is added to the buffer list BufAdd - will be triggered too. - NOTE: When this autocommand is executed, the - current buffer "%" may be different from the - buffer being created "<afile>". - *BufCreate* *BufAdd* -BufAdd or BufCreate Just after creating a new buffer which is - added to the buffer list, or adding a buffer - to the buffer list. - Also used just after a buffer in the buffer - list has been renamed. - The BufCreate event is for historic reasons. - NOTE: When this autocommand is executed, the - current buffer "%" may be different from the - buffer being created "<afile>". - *BufDelete* -BufDelete Before deleting a buffer from the buffer list. - The BufUnload may be called first (if the - buffer was loaded). - Also used just before a buffer in the buffer - list is renamed. - NOTE: When this autocommand is executed, the - current buffer "%" may be different from the - buffer being deleted "<afile>". - *BufWipeout* -BufWipeout Before completely deleting a buffer. The - BufUnload and BufDelete events may be called - first (if the buffer was loaded and was in the - buffer list). Also used just before a buffer - is renamed (also when it's not in the buffer - list). - NOTE: When this autocommand is executed, the - current buffer "%" may be different from the - buffer being deleted "<afile>". - *WinEnter* -WinEnter After entering another window. Not done for - the first window, when Vim has just started. - Useful for setting the window height. - If the window is for another buffer, Vim - executes the BufEnter autocommands after the - WinEnter autocommands. - Note: When using ":split fname" the WinEnter - event is triggered after the split but before - the file "fname" is loaded. - *WinLeave* -WinLeave Before leaving a window. If the window to be - entered next is for a different buffer, Vim - executes the BufLeave autocommands before the - WinLeave autocommands (but not for ":new"). - Not used for ":qa" or ":q" when exiting Vim. - *CmdwinEnter* -CmdwinEnter After entering the command-line window. - Useful for setting options specifically for - this special type of window. This is - triggered _instead_ of BufEnter and WinEnter. - <afile> is set to a single character, - indicating the type of command-line. - |cmdwin-char| - *CmdwinLeave* -CmdwinLeave Before leaving the command-line window. - Useful to clean up any global setting done - with CmdwinEnter. This is triggered _instead_ - of BufLeave and WinLeave. - <afile> is set to a single character, - indicating the type of command-line. - |cmdwin-char| *GUIEnter* GUIEnter After starting the GUI successfully, and after opening the window. It is triggered before VimEnter when using gvim. Can be used to position the window from a .gvimrc file: > :autocmd GUIEnter * winpos 100 50 -< *VimEnter* -VimEnter After doing all the startup stuff, including - loading .vimrc files, executing the "-c cmd" - arguments, creating all windows and loading - the buffers in them. - *VimLeavePre* -VimLeavePre Before exiting Vim, just before writing the - .viminfo file. This is executed only once, - if there is a match with the name of what - happens to be the current buffer when exiting. - Mostly useful with a "*" pattern. > - :autocmd VimLeavePre * call CleanupStuff() -< To detect an abnormal exit use |v:dying|. - *VimLeave* -VimLeave Before exiting Vim, just after writing the - .viminfo file. Executed only once, like - VimLeavePre. - To detect an abnormal exit use |v:dying|. - *EncodingChanged* -EncodingChanged Fires off after the 'encoding' option has been - changed. Useful to set up fonts, for example. +< *InsertChange* +InsertChange When typing <Insert> while in Insert or + Replace mode. The |v:insertmode| variable + indicates the new mode. + Be careful not to move the cursor or do + anything else that the user does not expect. *InsertEnter* InsertEnter When starting Insert mode. Also for Replace mode and Virtual Replace mode. The |v:insertmode| variable indicates the mode. Be careful not to move the cursor or do anything else that the user does not expect. - *InsertChange* -InsertChange When typing <Insert> while in Insert or - Replace mode. The |v:insertmode| variable - indicates the new mode. - Be careful not to move the cursor or do - anything else that the user does not expect. *InsertLeave* InsertLeave When leaving Insert mode. Also when using CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|. - *FileEncoding* -FileEncoding Obsolete. It still works and is equivalent - to |EncodingChanged|. - *ColorScheme* -ColorScheme After loading a color scheme. |:colorscheme| + *MenuPopup* +MenuPopup Just before showing the popup menu (under the + right mouse button). Useful for adjusting the + menu for what is under the cursor or mouse + pointer. + The pattern is matched against a single + character representing the mode: + n Normal + v Visual + o Operator-pending + i Insert + c Commmand line + *QuickFixCmdPre* +QuickFixCmdPre Before a quickfix command is run (|:make|, + |:grep|, |:grepadd|, |:vimgrep|, + |:vimgrepadd|). The pattern is matched against + the command being run. When |:grep| is used + but 'grepprg' is set to "internal" it still + matches "grep". + This command cannot be used to set the + 'makeprg' and 'grepprg' variables. + If this command causes an error, the quickfix + command is not executed. + *QuickFixCmdPost* +QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix + command is run. *RemoteReply* RemoteReply When a reply from a Vim that functions as server was received |server2client()|. @@ -531,6 +637,44 @@ RemoteReply When a reply from a Vim that functions as Note that even if an autocommand is defined, the reply should be read with |remote_read()| to consume it. + *SessionLoadPost* +SessionLoadPost After loading the session file created using + the |:mksession| command. + *StdinReadPost* +StdinReadPost After reading from the stdin into the buffer, + before executing the modelines. Only used + when the "-" argument was used when Vim was + started |--|. + *StdinReadPre* +StdinReadPre Before reading from stdin into the buffer. + Only used when the "-" argument was used when + Vim was started |--|. + *SwapExists* +SwapExists Detected an existing swap file when starting + to edit a file. Only when it is possible to + select a way to handle the situation, when Vim + would ask the user what to do. + The |v:swapname| variable holds the name of + the swap file found. + The |v:swapchoice| variable should be set to + a string with one character to tell what Vim + should do next: + 'o' open read-only + 'e' edit the file anyway + 'r' recover + 'd' delete the swap file + 'q' quit, don't edit the file + 'a' abort, like hitting CTRL-C + When set to an empty string the user will be + asked, as if there was no SwapExists autocmd. + Note: Do not try to change the buffer, the + results are unpredictable. + *Syntax* +Syntax When the 'syntax' option has been set. + <afile> can be used for the name of the file + where this option was set, and <amatch> for + the new value of 'syntax'. + See |:syn-on|. *TermChanged* TermChanged After the value of 'term' has changed. Useful for re-loading the syntax file to update the @@ -541,63 +685,46 @@ TermResponse After the response to |t_RV| is received from the terminal. The value of |v:termresponse| can be used to do things depending on the terminal version. -QuickFixCmdPre *QuickFixCmdPre* - Before a quickfix command is run (|:make|, - |:grep|, |:grepadd|, |:vimgrep|, - |:vimgrepadd|). The pattern is matched against - the command being run. When |:grep| is used - but 'grepprg' is set to "internal" it still - matches "grep". - This command cannot be used to set the - 'makeprg' and 'grepprg' variables. - If this command causes an error, the quickfix - command is not executed. -QuickFixCmdPost *QuickFixCmdPost* - like QuickFixCmdPre, but after a quickfix - command is run. - *SessionLoadPost* -SessionLoadPost After loading the session file created using - the |:mksession| command. - *MenuPopup* -MenuPopup Just before showing the popup menu (under the - right mouse button). Useful for adjusting the - menu for what is under the cursor or mouse - pointer. - The pattern is matched against a single - character representing the mode: - n Normal - v Visual - o Operator-pending - i Insert - c Commmand line - *UserGettingBored* -UserGettingBored When the user hits CTRL-C. Just kidding! :-) *User* User Never executed automatically. To be used for autocommands that are only executed with ":doautocmd". - -You can specify a comma-separated list of event names. No white space can be -used in this list. The command applies to all the events in the list. - -For READING FILES there are four kinds of events possible: - BufNewFile starting to edit a non-existent file - BufReadPre BufReadPost starting to edit an existing file - FilterReadPre FilterReadPost read the temp file with filter output - FileReadPre FileReadPost any other file read -Vim uses only one of these four kinds when reading a file. The "Pre" and -"Post" events are both triggered, before and after reading the file. - -Note that the autocommands for the *ReadPre events and all the Filter events -are not allowed to change the current buffer (you will get an error message if -this happens). This is to prevent the file to be read into the wrong buffer. - -Note that the 'modified' flag is reset AFTER executing the BufReadPost -and BufNewFile autocommands. But when the 'modified' option was set by the -autocommands, this doesn't happen. - -You can use the 'eventignore' option to ignore a number of events or all -events. + *UserGettingBored* +UserGettingBored When the user hits CTRL-C. Just kidding! :-) + *VimEnter* +VimEnter After doing all the startup stuff, including + loading .vimrc files, executing the "-c cmd" + arguments, creating all windows and loading + the buffers in them. + *VimLeave* +VimLeave Before exiting Vim, just after writing the + .viminfo file. Executed only once, like + VimLeavePre. + To detect an abnormal exit use |v:dying|. + *VimLeavePre* +VimLeavePre Before exiting Vim, just before writing the + .viminfo file. This is executed only once, + if there is a match with the name of what + happens to be the current buffer when exiting. + Mostly useful with a "*" pattern. > + :autocmd VimLeavePre * call CleanupStuff() +< To detect an abnormal exit use |v:dying|. + *WinEnter* +WinEnter After entering another window. Not done for + the first window, when Vim has just started. + Useful for setting the window height. + If the window is for another buffer, Vim + executes the BufEnter autocommands after the + WinEnter autocommands. + Note: When using ":split fname" the WinEnter + event is triggered after the split but before + the file "fname" is loaded. + *WinLeave* +WinLeave Before leaving a window. If the window to be + entered next is for a different buffer, Vim + executes the BufLeave autocommands before the + WinLeave autocommands (but not for ":new"). + Not used for ":qa" or ":q" when exiting Vim. ============================================================================== 6. Patterns *autocmd-patterns* *{pat}* |