Saya mengerti maksud Anda dengan baik, saya menggunakan buffer secara eksklusif juga, dan sesekali melakukan split jika diperlukan.
di bawah ini adalah kutipan dari saya .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!
Yang cocok dengan alur kerja saya dengan cukup baik
Jika q
ditekan
- sembunyikan jendela saat ini jika banyak jendela terbuka, coba yang lain berhenti vim.
jika qo
ditekan,
- tutup semua jendela lain, tidak ada efek jika hanya satu jendela.
Tentu saja, Anda dapat membungkus bagian yang berantakan itu menjadi suatu fungsi , misalnya
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>
Sidenote : Saya remap q
, karena saya tidak menggunakan makro untuk mengedit, bukan menggunakan :s
, :g
, :v
, dan eksternal perintah pengolahan teks jika diperlukan, misalnya, :'{,'}!awk 'some_programm'
atau penggunaan :norm! normal-command-here
.