diff options
Diffstat (limited to 'core/autocommands.vim')
| -rw-r--r-- | core/autocommands.vim | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/core/autocommands.vim b/core/autocommands.vim new file mode 100644 index 0000000..a64770d --- /dev/null +++ b/core/autocommands.vim @@ -0,0 +1,77 @@ +"{ Auto commands +" Do not use smart case in command line mode, extracted from https://vi.stackexchange.com/a/16511/15292. +augroup dynamic_smartcase + autocmd! + autocmd CmdLineEnter : set nosmartcase + autocmd CmdLineLeave : set smartcase +augroup END + +augroup term_settings + autocmd! + " Do not use number and relative number for terminal inside nvim + autocmd TermOpen * setlocal norelativenumber nonumber + " Go to insert mode by default to start typing command + autocmd TermOpen * startinsert +augroup END + +" More accurate syntax highlighting? (see `:h syn-sync`) +augroup accurate_syn_highlight + autocmd! + autocmd BufEnter * :syntax sync fromstart +augroup END + +" Return to last edit position when opening a file +augroup resume_edit_position + autocmd! + autocmd BufReadPost * + \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit' | execute "normal! g`\"zvzz" | endif +augroup END + +" Display a message when the current file is not in utf-8 format. +" Note that we need to use `unsilent` command here because of this issue: +" https://github.com/vim/vim/issues/4379 +augroup non_utf8_file_warn + autocmd! + autocmd BufRead * if &fileencoding != 'utf-8' | unsilent echomsg 'File not in UTF-8 format!' | endif +augroup END + +" Automatically reload the file if it is changed outside of Nvim, see +" https://unix.stackexchange.com/a/383044/221410. It seems that `checktime` +" command does not work in command line. We need to check if we are in command +" line before executing this command. See also +" https://vi.stackexchange.com/a/20397/15292. +augroup auto_read + autocmd! + autocmd FocusGained,BufEnter,CursorHold,CursorHoldI * + \ if mode() == 'n' && getcmdwintype() == '' | checktime | endif + autocmd FileChangedShellPost * echohl WarningMsg + \ | echo "File changed on disk. Buffer reloaded!" | echohl None +augroup END + +augroup numbertoggle + autocmd! + autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu | set rnu | endif + autocmd BufLeave,FocusLost,InsertEnter,WinLeave * if &nu | set nornu | endif +augroup END + +" highlight yanked region, see `:h lua-highlight` +augroup custom_highlight + autocmd! + autocmd ColorScheme * highlight YankColor ctermfg=59 ctermbg=41 guifg=#34495E guibg=#2ECC71 +augroup END + +augroup highlight_yank + autocmd! + au TextYankPost * silent! lua vim.highlight.on_yank{higroup="YankColor", timeout=300} +augroup END + +" Clear cmd line message +function! s:empty_message(timer) + if mode() ==# 'n' | echo '' | endif +endfunction + +augroup cmd_msg_cls + autocmd! + autocmd CursorHold * call timer_start(25000, funcref('s:empty_message')) +augroup END +"} |
