मैं समझता हूं कि आप अच्छी तरह से इरादा करते हैं, मैं विशेष रूप से बफ़र्स का उपयोग करता हूं, और कभी-कभी ज़रूरत पड़ने पर विभाजित भी करता हूं।
नीचे मेरा कुछ अंश है .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!
जो मेरे वर्कफ़्लो को काफी अच्छी तरह से फिट करता है
अगर q
दबाया गया
- कई विंडो खुली होने पर वर्तमान विंडो को छिपाएं, अन्यथा विम को छोड़ने का प्रयास करें।
अगर qo
दबाया गया था,
- अन्य सभी विंडो बंद करें, केवल एक विंडो होने पर कोई प्रभाव नहीं।
बेशक, आप उस गड़बड़ हिस्से को एक फ़ंक्शन में लपेट सकते हैं , जैसे
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 : मैं remap q
, के बाद से मैं संपादन के लिए मैक्रो का उपयोग करने के बजाय का उपयोग करें :s
, :g
, :v
, और बाहरी पाठ प्रसंस्करण आदेश यदि आवश्यक हो, जैसे, :'{,'}!awk 'some_programm'
, या उपयोग :norm! normal-command-here
।