मैं अपनी विंडो को ग्रिड गठन में कैसे वापस ला सकता हूं?


12

यदि मेरे पास आज्ञाओं के निम्नलिखित अनुक्रम से चार चतुर्भुजों में खिड़कियां हैं, तो:

  • :tabnew
  • :vsplit
  • :split
  • <C-W>l
  • :split

फिर एक कमांड में प्रवेश करने से <C-W>Jये वर्ग नहीं रह जाएंगे; इस स्थिति में, यह एक विंडो को तल पर तैरने के लिए मजबूर करेगा।

मैं इसके विपरीत कैसे कर सकता हूं - अर्थात्, खिड़कियों को एक वर्ग गठन में वापस मजबूर करें?

मैंने पढ़ा है, :help window-movingलेकिन कुछ उपयोगी नहीं देखा।


1
मैं थोड़ा स्पष्ट नहीं हूं कि आप क्या हासिल करने की कोशिश कर रहे हैं जब आप <CW> J दबाते हैं, जो "खिड़की के वर्तमान चौड़ाई को बहुत नीचे तक ले जाता है, स्क्रीन की पूरी चौड़ाई का उपयोग करते हुए," इसका मतलब है कि खिड़कियां होंगी अब ग्रिड गठन में नहीं, परिभाषा के अनुसार। आप वास्तव में अपनी खिड़कियों के साथ क्या करने की कोशिश कर रहे हैं?
रिच

3
@ मुझे लगता है कि ओपी केवल एक ऐसी स्थिति से जूझ रहा है जिसके बाद वह ग्रिड गठन के लिए खिड़कियों को रीसेट करना चाह सकता है।
गोंकेलो रिबेरो

@ गोंकोलिरिबेरो सही।
प्रात


हालांकि एक जवाब नहीं है, अगर आप अपने समाधान बनाने के लिए कोड उदाहरणों के लिए खुद को शिकार पाते हैं, तो मैं शानदार माइक्रोविच प्रोजेक्ट की जांच करने की सलाह देता हूं ।
न्यू अलेक्जेंड्रिया

जवाबों:


4

जहां तक ​​मैं जानता हूं, खुले विभाजन को ग्रिडों की ग्रिड में व्यवस्थित करने का कोई आसान तरीका नहीं है। इस मामले में, ग्रिड में वापस आने का सबसे आसान तरीका संरचना को मैन्युअल रूप से ठीक करना है:

  1. शीर्ष पर तैरते हुए विभाजन को बंद करें
  2. आधी स्क्रीन लेने के बाद विभाजन पर वापस लौटें
  3. इसके साथ फिर से विभाजित :split <file>

यह आपको एक ग्रिड में लौटा देगा। विंडो लेआउट को प्रभावित किए बिना पैंतरेबाज़ी करने का तरीका [गिनती] का उपयोग करना है Ctrl - W x , जो [गिनती] विंडो के साथ वर्तमान विंडो का आदान-प्रदान करता है।


मुझे पता है कि मैं ऐसा कर सकता हूं, लेकिन एक-दो डाउनसाइड हैं। (1) खिड़की किसी दिए गए बफर के केवल दृश्य है, और बफर गंदा है, तो आप करना होगा :wqया :q!, न तो जिनमें से वांछनीय है। (2) यह किसी भी विंडो-विशिष्ट सेटिंग्स को रीसेट करेगा, जैसे कर्सर की स्थिति। (३) इससे किसी भी इन-प्रोग्रेस भिन्नता टूट जाएगी। अनिवार्य रूप से, खिड़कियां प्रथम श्रेणी के नागरिक हैं; उन्हें नष्ट करना और नए बनाना बस पर्याप्त नहीं है।
1

यदि आप छिपे हुए बफ़र्स की अनुमति देने के लिए विम सेट करते हैं, तो इसमें से कुछ भाग छूट जाते हैं। लेकिन हाँ ...
derobert

2
खिड़की को बंद करने और बफर को वांछित स्थान पर विभाजित करने के बजाय, एक नई विंडो को विभाजित करें जहां आप इसे जाना चाहते हैं, इसे उस विंडो के साथ विनिमय करें जिसे आप स्थानांतरित करना चाहते हैं, फिर नई विंडो को बंद (स्थानांतरित) करना चाहते हैं।
tommcdo

4

आप winsaveviewकमांड का उपयोग करके अपने पसंदीदा लेआउट को बचा सकते हैं । यहाँ मैं इसे \svसुविधा के लिए मैप कर रहा हूँ :

nnoremap <Leader>sv :let g:myLayout = winsaveview()<CR>

अपने ले-आउट को तोड़ने से पहले उसे अवश्य चलाएं! ;-)

अब यदि आप कभी गलती से अपना लेआउट तोड़ देते हैं, तो आप इसे पुनर्स्थापित कर सकते हैं:

nnoremap <Leader>rv :call winrestview(g:myLayout)<CR>

4

विंडोज़ को फिर से व्यवस्थित करने के लिए डिफ़ॉल्ट कुंजियाँ केवल उनके स्थानीय विभाजन समूह में काम करती हैं:

CTRL-W x   Exchange current window with next (in group)
CTRL-W r   Rotate windows down/right (in group)

या वे शीर्ष समूह के लिए खिड़की तोड़ देते हैं:

CTRL-W  H | J | K | L   Move window to left/top/bottom/right-most edge

जब आप बफर को अन्य विभाजन समूहों में से एक में स्थानांतरित करना चाहते हैं तो ये अपर्याप्त हैं।

लेकिन इस तरह के अवसरों पर, WindowSwap प्लगइन मदद कर सकते हैं । यह आपको किसी भी दो मनमानी खिड़कियों के बफ़र्स को स्वैप करने की सुविधा देता है।

<leader> yw   "Yank window": Yank the current window

<leader> pw   "Paste window": Swap the current window with the yanked window
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.