VIM में एक ऊर्ध्वाधर विभाजन के रूप में एक बफर खोलें


176

यदि आप किसी फ़ाइल को VIM में संपादित कर रहे हैं और फिर आपको एक मौजूदा बफर (जैसे आपकी बफर सूची से :buffers) खोलने की आवश्यकता है: तो आप इसे एक ऊर्ध्वाधर विभाजन में कैसे खोल सकते हैं?

मुझे पता है कि आप पहले से ही इसे सामान्य विभाजन के साथ खोल सकते हैं जैसे:

:sbuffer N

Wehere N, बफर संख्या आप चाहते है लेकिन, इसके बाद के संस्करण है कि खोलता है Nक्षैतिज बफर, खड़ी नहीं।

मुझे यह भी पता है कि आप खुलने के बाद विंडो प्लेसमेंट को बदल सकते हैं और इस तरह एक वर्टिकल स्प्लिट कर सकते हैं:

Ctrl-W H
Ctrl-W L

जो खिड़की को दाईं ओर या बाईं ओर विभाजित करेगा।

यह मुझे लगता है कि अगर वहाँ है, लेकिन sbufferऐसा होना चाहिए जो vsbufferमौजूद नहीं है (ऐसा नहीं है कि मुझे पता है)

इसके अलावा, कृपया ध्यान दें कि मैं इस प्रश्न को हल करने के लिए प्लगइन की तलाश में नहीं हूं। मुझे ऐसे प्लगइन्स के बारे में पता है जो आपको ऐसा करने की अनुमति देंगे।

मुझे यकीन है कि मुझे कुछ याद आ रहा है जो पहले से ही है।

संपादित करें: सहयोग की सबसे अच्छी भावना में, मैंने मैपिंग के साथ एक सरल फ़ंक्शन बनाया है यदि कोई व्यक्ति इस मुद्दे पर ठोकर खाता है और एक प्लगइन स्थापित नहीं करना चाहता है:

समारोह:

" Vertical Split Buffer Function
function VerticalSplitBuffer(buffer)
    execute "vert belowright sb" a:buffer 
endfunction

मैपिंग:

" Vertical Split Buffer Mapping
command -nargs=1 Vbuffer call VerticalSplitBuffer(<f-args>)

यह एक सही विभाजन में बफर खोलने के कार्य को पूरा करता है, इसलिए बफर 1 के लिए, आप इसे इस तरह से कॉल करेंगे:

:Vbuffer 1

जवाबों:


206

प्रयत्न:

:vert sb N

जो एक बाएं ऊर्ध्वाधर विभाजन को खोल देगा (डिफ़ॉल्ट रूप से, जब तक कि आपने कुछ विकल्प संशोधित नहीं किए हैं)।

दूसरी ओर, दाईं ओर एक विभाजन खोलने के लिए:

:vert belowright sb N

5
यह नहीं बल्कि अजीब लगता है vsbuffer N? कष्टप्रद। आपका जवाब यह नाखून। धन्यवाद!
अल्फ्रेडोडा

13
मुझे हमेशा लगता है कि वहाँ भी होना चाहिए vsbuffer, और मैं भी अक्सर Ctrl-w Tएक नए टैब में एक बफर खोलने के लिए भूल जाता हूं (या मैं ऐसा करना चाहता हूं कि एक बफर के साथ जो वर्तमान में सक्रिय या दृश्यमान नहीं है)। एक विकल्प के रूप में, आप इन मामलों में से किसी एक के लिए बार का उपयोग कर सकते हैं, जो मुझे @ जीत के वैध उत्तर की तुलना में याद रखना आसान है: :vsp | b Nऔर :tabe | b N
चेस

मुझे यह पसंद है कि यह कमांड Nस्वतः पूर्ण होने की अनुमति देता है (जो दूसरे उत्तर में कमांड के साथ संभव नहीं लगता है)। दोनों ने फिर भी, उत्थान किया।
डेविड रिवर्स

124

:vsp | b1

1 कुछ बफर नंबर है। buffersसभी बफ़र्स को सूचीबद्ध करने के लिए उपयोग करें ।

यदि आप रुचि रखते हैं, तो विभाजन के बारे में कुछ अतिरिक्त जानकारी यहाँ दी गई है। संपर्क


9
आप भी उपयोग कर सकते हैं :ls, जो कि एक शॉर्टकट लगता है :buffers
dskecse

3
आप यह भी कर सकते हैं:vsp | b <buffer name>
केनी बमब्रिज

4
@KennyBambridge और भी बेहतर - आपको केवल बफर नाम (केस संवेदी) का हिस्सा टाइप करना है और फिर फ़िल्टर की गई सूची के माध्यम से चक्र को हिट करना है
icc97

इस बात को ध्यान में रखें कि हालाँकि @Jerinaw द्वारा दिया गया लिंक अच्छा है, उस पेज पर शब्दावली बहुत ही भ्रामक है, इसलिए आपको उस पेज पर टिप्पणियों को पढ़ने के साथ-साथ स्पष्ट करना होगा।
नीलजी

5

आप अपने .vimrc में निम्न जोड़कर अपने दर्द को कम कर सकते हैं

cabbrev vb vert sb

अब आप इसे निम्नलिखित तरीके से उपयोग कर सकते हैं।

:vb <buffer>

यह अच्छा है, विस्तारित संस्करण ऑफर भी नाम autocompletion बफ़र्स! मुझे कैबरेव भी नहीं पता था, धन्यवाद।
किडपिक्सो

2

आप :lsअपने वर्तमान बफ़र्स और कमांड को वांछित बफर खोलने के लिए सूचीबद्ध कर सकते हैं

  1. वर्तमान विंडो: :b <N/bufname>
  2. ऊर्ध्वाधर विभाजन: :vsp | b <N/bufname>
  3. क्षैतिज विभाजन: :sp | b <N/bufname>

इसके लिए, मैंने निम्नलिखित मैपिंग को अपने साथ जोड़ा है ~/.vimrc(मैपिंग का क्रम वांछित खिड़कियों की उपरोक्त सूची का प्रतिनिधित्व करता है)

 nnoremap <leader>b :ls<cr>:b<space>
 nnoremap <leader>v :ls<cr>:vsp<space>\|<space>b<space>
 nnoremap <leader>s :ls<cr>:sp<space>\|<space>b<space>

इसके आधार पर, आप हिट करते ही बफर सूची देख सकते हैं

  1. <leader>b
  2. <leader>v
  3. <leader>s

और फिर वांछित बफर नंबर दर्ज करें N। यह तब वांछित विंडो में बफर खोल देगा। आप निश्चित रूप से अभी भी बफर नाम के एक हिस्से का उपयोग कर सकते हैं bufname

मैं मैप किया गया <leader>करने के लिए ,के आधार पर

let mapleader = ","

कुछ लोगों के लिए (जैसे मुझे) यह मिनीब्यूफ़एक्सप्ले जैसे प्लगइन्स को भी बदल सकता है और इस तरह स्क्रीन पर जगह बचा सकता है।


0

आप Neovim का उपयोग कर सकते हैं, जैसे:

autocmd FileType python nmap <F5> :rightbelow vertical split <bar> :term python %<cr>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.