Vim's :terminal feels much more ergonomic, adding various mappings to make the experience more similar, mainly by adding a few `<C-w>` mappings for the most common actions. Additionally, disable vim-tmux-navigators default mappings and setup both normal and terminal mode mappings for `<C-w>{h,j,k,l}` in addition to the normal mode mappings for `<C-{h,j,j,l}>` to make the pane switching experience more consistent across all buffer types.
48 lines
1.8 KiB
VimL
48 lines
1.8 KiB
VimL
augroup benieAugroup
|
|
autocmd!
|
|
|
|
if tmux#inSession()
|
|
" [Un]set tmux window option to detect when to change pane.
|
|
call tmux#setNavigationFlag()
|
|
au FocusGained * silent call tmux#setNavigationFlag()
|
|
au VimLeave * silent call tmux#unsetNavigationFlag()
|
|
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()
|
|
|
|
" Augment vim-signify by modifying it's autocmds
|
|
au User SignifyAutocmds call do#signify()
|
|
|
|
if has('nvim')
|
|
" Start in terminal-insert mode.
|
|
autocmd TermOpen term://* startinsert
|
|
" Don't show the line number column in terminal-insert mode.
|
|
autocmd TermEnter term://* set nonumber | set norelativenumber
|
|
" But do show the line number column in terminal-normal mode.
|
|
autocmd TermLeave term://* set number | set relativenumber
|
|
" Automatically press enter when the terminal process exits.
|
|
autocmd TermClose term://*
|
|
\ if (expand('<afile>') !~ "fzf") &&
|
|
\ (expand('<afile>') !~ "ranger") &&
|
|
\ (expand('<afile>') !~ "coc") |
|
|
\ call nvim_input('<CR>') |
|
|
\ endif
|
|
endif
|
|
augroup END
|