Tôi hiểu bạn có ý tốt, tôi cũng chỉ sử dụng bộ đệm và thỉnh thoảng chia tách nếu cần.
dưới đây là đoạn trích của tôi .vimrc
" disable macro, since not used in 90+% use cases
map q <Nop>
" q, close/hide current window, or quit vim if no other window
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR>
" qo, close all other window -- 'o' stands for 'only'
nnoremap qo :only<CR>
set hidden
set timeout
set timeoutlen=200 " let vim wait less for your typing!
Điều này phù hợp với quy trình làm việc của tôi khá tốt
Nếu q
được nhấn
- ẩn cửa sổ hiện tại nếu nhiều cửa sổ mở, người khác cố gắng thoát vim.
nếu qo
bị ép,
- đóng tất cả các cửa sổ khác, không có hiệu lực nếu chỉ có một cửa sổ.
Tất nhiên, bạn có thể gói phần lộn xộn đó thành một hàm , ví dụ
func! Hide_cur_window_or_quit_vim()
if winnr('$') > 1
hide
else
silent! exec 'q'
endif
endfunc
nnoremap q :call Hide_cur_window_or_quit_vim()<CR>
Phụ chú : Tôi remap q
, kể từ khi tôi không sử dụng macro để chỉnh sửa, thay vì sử dụng :s
, :g
, :v
, và bên ngoài lệnh xử lý văn bản nếu cần thiết, ví dụ :'{,'}!awk 'some_programm'
, hoặc sử dụng :norm! normal-command-here
.