From 460ec98052e07bbf16d8143d8f242280662582a6 Mon Sep 17 00:00:00 2001 From: jdhao Date: Thu, 26 Sep 2019 23:18:19 +0800 Subject: Split large nvim config into several files for easier management --- autocommands.vim | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 autocommands.vim (limited to 'autocommands.vim') diff --git a/autocommands.vim b/autocommands.vim new file mode 100644 index 0000000..c400791 --- /dev/null +++ b/autocommands.vim @@ -0,0 +1,61 @@ +"{ Auto commands +" Do not use smart case in command line mode, +" extracted from https://goo.gl/vCTYdK +augroup dynamic_smartcase + autocmd! + autocmd CmdLineEnter : set nosmartcase + autocmd CmdLineLeave : set smartcase +augroup END + +" Set textwidth for text file types +augroup text_file_width + autocmd! + " Sometimes, automatic filetype detection is not right, so we need to + " detect the filetype based on the file extensions + autocmd BufNewFile,BufRead *.md,*.MD,*.markdown setlocal textwidth=79 +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 http://tinyurl.com/y6av4sy9. +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 +"} -- cgit v1.2.3