aboutsummaryrefslogtreecommitdiff
path: root/core/autocommands.vim
diff options
context:
space:
mode:
authorjdhao <jdhao@hotmail.com>2021-02-21 14:21:32 +0800
committerjdhao <jdhao@hotmail.com>2021-02-21 14:21:32 +0800
commit7085965e05f780a0436a788e91132a142e66a2a1 (patch)
treee695dc3ed86e3d1235389ea8eeb7de2f52488f60 /core/autocommands.vim
parent2672a92e7740000490c80954bfa0bce4767ef5d4 (diff)
Refactor the auto-quit logic
Also quit quickfix window if it is the only window left.
Diffstat (limited to 'core/autocommands.vim')
-rw-r--r--core/autocommands.vim14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/autocommands.vim b/core/autocommands.vim
index 00c48e2..28503d8 100644
--- a/core/autocommands.vim
+++ b/core/autocommands.vim
@@ -83,4 +83,18 @@ augroup cursor_color
autocmd ColorScheme * highlight Cursor cterm=bold gui=bold guibg=#00c918 guifg=black
autocmd ColorScheme * highlight Cursor2 guifg=red guibg=red
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
"}