mirror of
https://github.com/jdhao/nvim-config.git
synced 2025-06-08 14:14:33 +02:00
1. Customize document hover window border color. 2. Show also the source that generates a certain diagnostic message.
94 lines
3.1 KiB
VimL
94 lines
3.1 KiB
VimL
"{ 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
|
|
|
|
" Highlight groups for cursor color
|
|
augroup cursor_color
|
|
autocmd!
|
|
autocmd ColorScheme * highlight Cursor cterm=bold gui=bold guibg=#00c918 guifg=black
|
|
autocmd ColorScheme * highlight Cursor2 guifg=red guibg=red
|
|
augroup END
|
|
|
|
augroup float_border_color
|
|
autocmd!
|
|
autocmd ColorScheme * highlight FloatBorder guifg=LightGreen guibg=NONE
|
|
augroup END
|
|
|
|
augroup auto_close_win
|
|
autocmd!
|
|
autocmd BufEnter * call s:quit_current_win()
|
|
augroup END
|
|
|
|
" Quit Neovim if we have only one window, and its filetype match our pattern.
|
|
function! s:quit_current_win() abort
|
|
let quit_filetypes = ['qf', 'vista']
|
|
let buftype = getbufvar(bufnr(), '&filetype')
|
|
if winnr('$') == 1 && index(quit_filetypes, buftype) != -1
|
|
quit
|
|
endif
|
|
endfunction
|
|
"}
|