2013-07-12 3 views
7

डिफ़ॉल्ट रूप से, VIM :e कमांड निर्दिष्ट फ़ाइल के साथ एक नया बफर बनाएगा, जिससे वर्तमान बफर को हाथ में रखा जा सकेगा। इससे बफरों की संख्या बढ़ती जा रही है (और यह आसान नहीं है अगर कुछ बफर डिस्प्ले प्लगइन का उपयोग किया जाता है, उदाहरण के लिए लोकप्रिय minibufexplorer)। क्या वीआईएम को संशोधित करना संभव है ताकि :e कमांड वर्तमान बफर का पुन: उपयोग करेगा? अगर मुझे दो बफर की ज़रूरत है, तो मैं हमेशा :enew कमांड के माध्यम से दूसरा एक बना सकता हूं।वीआईएम: वर्तमान बफर में नई फाइल कैसे खोलें?

उत्तर

11

आप नहीं कर सकते हैं "फिर से उपयोग" एक बफर, vim में एक बफर

एक फाइल संपादन के लिए मेमोरी में लोड है।

:bd!|e /path/file 

ध्यान दें कि ! साथ, मौजूदा बफर पर परिवर्तनों को छोड़ दिया जाएगा:

आप ताकि आपके बफ़र्स गिनती रखने के लिए, वर्तमान बफर फिर एक नया खोलने हटा सकते हैं।

+1

बहुत बहुत धन्यवाद! क्या यह वीआईएम में इस '|' के बारे में कोई दस्तावेज है अंकन? मुझे पता नहीं था कि मैं इस तरह श्रृंखला कमांड कर सकता हूं। – grigoryvp

+3

देखें [': सहायता: बार'] (http://vimdoc.sourceforge.net/htmldoc/cmdline.html#:bar)। –

8
:bd!|e file 

सबसे सहज ज्ञान युक्त तरीका है, लेकिन यदि आपके पास विभाजन है तो यह आपकी खिड़की को मार देगा। तो ...

function! ReplaceBuffer(bang, newfile) 
    let curbuf = bufnr('%') 
    exec "e " . a:newfile 
    exec "bd" . a:bang . " " . curbuf 
endfunction 
command! -nargs=1 -complete=file -bang -bar BDE call ReplaceBuffer('<bang>', <f-args>) 

तो फिर तुम

:BDE ~/.vimrc 

या

:BDE! ~/.vimrc 

अपने .vimrc लोड और बफर आप में थे बंद को मारने, खिड़कियों के साथ खिलवाड़ के बिना करने के लिए कर सकते हैं।

+0

अच्छा उल्लेख है कि ': बीडी! | ई फाइल' विभाजन विभाजित करता है! मैं कुछ ऐसा ढूंढ रहा था जो विभाजन लेआउट को संरक्षित करता है – jazzyfresh

संबंधित मुद्दे