Improve tmux integration when changing buffers or panes when vim was invoked by another process so that seamless navigation works when the `vim$TMUX_PANE` window option has been set, not only when the pane's command matches a simple regex.
29 lines
1.1 KiB
VimL
29 lines
1.1 KiB
VimL
augroup benieAugroup
|
|
autocmd!
|
|
|
|
if $TMUX !=# ''
|
|
" Set tmux window option to detect when to change pane.
|
|
let s:tmux_option = '@vim'.substitute($TMUX_PANE, '%', '\\%', 'g')
|
|
call system('tmux set-window-option '.s:tmux_option.' 1')
|
|
au VimLeave * call system('tmux set-window-option -u '.s:tmux_option)
|
|
endif
|
|
|
|
" Reopening a file at last curson position
|
|
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
|
|
\ | exe "normal! g'\"" | endif
|
|
|
|
" Highlight conflict markers in any filetype
|
|
au FileType * call matchadd('Todo', '^\(<<<<<<<\s.*\||||||||\|=======\|>>>>>>>\s.*\)$')
|
|
|
|
" Update `Last change: <date>` on write & go back previous cursor position
|
|
au FileType help au BufWritePre <buffer>
|
|
\ 1s/Last change: \zs.*$/\=strftime('%Y %b %d')/e|norm!``
|
|
|
|
" Read template into buffer then send line 1 to the black hold register
|
|
au BufNewFile todo.md read ~/.vim/templates/skeleton.todo.md | 1delete _
|
|
" Attempt to expand snippet named `_template` if it exists
|
|
au BufNewFile * silent! call snippet#template()
|
|
" Do the same when filetype changes to help
|
|
au FileType help silent! call snippet#template()
|
|
augroup END
|