aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/log-autocmds.vim119
1 files changed, 119 insertions, 0 deletions
diff --git a/plugin/log-autocmds.vim b/plugin/log-autocmds.vim
new file mode 100644
index 0000000..0b2b489
--- /dev/null
+++ b/plugin/log-autocmds.vim
@@ -0,0 +1,119 @@
+command! LogAutocmds call s:log_autocmds_toggle()
+
+function! s:log_autocmds_toggle()
+ augroup LogAutocmd
+ autocmd!
+ augroup END
+
+ let l:date = strftime('%F', localtime())
+ let s:activate = get(s:, 'activate', 0) ? 0 : 1
+ if !s:activate
+ call s:log('Stopped autocmd log (' . l:date . ')')
+ return
+ endif
+
+ call s:log('Started autocmd log (' . l:date . ')')
+ augroup LogAutocmd
+ for l:au in s:aulist
+ silent execute 'autocmd' l:au '* call s:log(''' . l:au . ''')'
+ endfor
+ augroup END
+endfunction
+
+function! s:log(message)
+ silent execute '!echo "'
+ \ . strftime('%T', localtime()) . ' - ' . a:message . '"'
+ \ '>> /tmp/vim_log_autocommands'
+endfunction
+
+" These are deliberately left out due to side effects
+" - SourceCmd
+" - FileAppendCmd
+" - FileWriteCmd
+" - BufWriteCmd
+" - FileReadCmd
+" - BufReadCmd
+" - FuncUndefined
+
+let s:aulist = [
+ \ 'BufNewFile',
+ \ 'BufReadPre',
+ \ 'BufRead',
+ \ 'BufReadPost',
+ \ 'FileReadPre',
+ \ 'FileReadPost',
+ \ 'FilterReadPre',
+ \ 'FilterReadPost',
+ \ 'StdinReadPre',
+ \ 'StdinReadPost',
+ \ 'BufWrite',
+ \ 'BufWritePre',
+ \ 'BufWritePost',
+ \ 'FileWritePre',
+ \ 'FileWritePost',
+ \ 'FileAppendPre',
+ \ 'FileAppendPost',
+ \ 'FilterWritePre',
+ \ 'FilterWritePost',
+ \ 'BufAdd',
+ \ 'BufCreate',
+ \ 'BufDelete',
+ \ 'BufWipeout',
+ \ 'BufFilePre',
+ \ 'BufFilePost',
+ \ 'BufEnter',
+ \ 'BufLeave',
+ \ 'BufWinEnter',
+ \ 'BufWinLeave',
+ \ 'BufUnload',
+ \ 'BufHidden',
+ \ 'BufNew',
+ \ 'SwapExists',
+ \ 'FileType',
+ \ 'Syntax',
+ \ 'EncodingChanged',
+ \ 'TermChanged',
+ \ 'VimEnter',
+ \ 'GUIEnter',
+ \ 'GUIFailed',
+ \ 'TermResponse',
+ \ 'QuitPre',
+ \ 'VimLeavePre',
+ \ 'VimLeave',
+ \ 'FileChangedShell',
+ \ 'FileChangedShellPost',
+ \ 'FileChangedRO',
+ \ 'ShellCmdPost',
+ \ 'ShellFilterPost',
+ \ 'CmdUndefined',
+ \ 'SpellFileMissing',
+ \ 'SourcePre',
+ \ 'VimResized',
+ \ 'FocusGained',
+ \ 'FocusLost',
+ \ 'CursorHold',
+ \ 'CursorHoldI',
+ \ 'CursorMoved',
+ \ 'CursorMovedI',
+ \ 'WinEnter',
+ \ 'WinLeave',
+ \ 'TabEnter',
+ \ 'TabLeave',
+ \ 'CmdwinEnter',
+ \ 'CmdwinLeave',
+ \ 'InsertEnter',
+ \ 'InsertChange',
+ \ 'InsertLeave',
+ \ 'InsertCharPre',
+ \ 'TextChanged',
+ \ 'TextChangedI',
+ \ 'ColorScheme',
+ \ 'RemoteReply',
+ \ 'QuickFixCmdPre',
+ \ 'QuickFixCmdPost',
+ \ 'SessionLoadPost',
+ \ 'MenuPopup',
+ \ 'CompleteDone',
+ \ 'User',
+ \ ]
+