विम में विभाजन विंडो रद्द करें


231

मैंने अपनी खिड़कियों को क्षैतिज रूप से विभाजित किया है। अब मैं सामान्य मोड में कैसे लौट सकता हूं, अर्थात मेरी सभी खुली खिड़कियों को रद्द किए बिना सिर्फ एक खिड़की नहीं। मेरे पास 5 हैं और "छोड़ना" नहीं चाहते हैं, बस विभाजन खिड़की से बाहर निकलना चाहते हैं।


7
किसी भी मौका आप eckes के जवाब को स्वीकार कर सकता है? वर्तमान में स्वीकृत एक की तुलना में यह अधिक उपयोगी है ...
काइल स्ट्रैंड

जवाबों:


288

प्रेस Control+ w, फिर qएक बार में प्रत्येक विंडो को बंद करने के लिए हिट करें।

अद्यतन : इसके अलावा एके उत्तर पर विचार करें जो आपके लिए अधिक उपयोगी हो सकता है, इसमें शामिल :on (नीचे पढ़ें) यदि आप इसे एक बार में एक विंडो नहीं करना चाहते हैं।


9
मैं सहमत हूं, लेकिन ओपी ने उत्तर नहीं दिया, और मैं इसे खुद नहीं बदल सकता।
वॉरेन पी

4
मुझे पूरा यकीन है कि यह सही उत्तर है। यह मेरे लिए था और यदि आप ऑप के प्रश्न को देखते हैं, तो वह अपनी अन्य खुली खिड़कियों को बंद नहीं करना चाहता था, हाल ही में विभाजित एक।
ज़क

1
यदि दिखाए गए बफ़र में सहेजे गए परिवर्तन नहीं हैं तो मदद नहीं करता है। यह कहता है कि मुझे ओवरराइड करना चाहिए! लेकिन मुझे नहीं पता कि कैसे। एक नौसिखिया के रूप में मैं अब खो गया हूँ।
मुस्किक

2
इसलिए इसे बचाओ। यदि आप नहीं जानते कि कैसे बचाना है तो आपको इस उत्तर की आवश्यकता नहीं है। यह संभव है कि आपके पास सहेजने के लिए भी अनुमति नहीं है।
वॉरेन पी

1
पारंपरिक जीयूआई संपादकों से आ रहा है, यह एक बहुत ही अजीब अवधारणा है। सेटिंग hiddenहालांकि मदद करने के लिए लगता है। हालांकि, मेरा क्या मतलब था, आप कैसे जोड़ते हैं! एक शॉर्टकट के लिए? क्या यह "Cw-q", "Cw q!", "! Cw q", "C-! W q" है। मुझे लगता है कि उनमें से कोई भी नहीं है लेकिन मैं पहले से ही भूल गया था कि नए बफ़र्स कैसे बनाएं ताकि यह पाठक के लिए एक अभ्यास हो।
मुसिक

265

सभी विभाजन को बंद करने के, मैं आमतौर पर विंडो में कर्सर कि होगा जगह पर -ly दिखाई एक और फिर कर :onजो वर्तमान विंडो में आता है पर -ly दिखाई खिड़की। याद करने के लिए अच्छा है।


संपादित करें: :help :on मुझे दिखाया कि ये आदेश समान हैं:

इन चार में से प्रत्येक सक्रिय को छोड़कर सभी खिड़कियां बंद कर देता है।


8
+1 यदि अन्य विंडो में कोई भी अनपेक्षित परिवर्तन है, :onतो साथ में प्रतिक्रिया E445: Other window contains changesकरेगा और अन्य विंडो को बंद नहीं करेगा। उदाहरण के लिए, मैं आमतौर पर एक नई विंडो बनाता हूं, और उसमें एक फाइल पढ़ता हूं, जिसे मैं चाहता हूं। इस मामले में, विम दूसरी खिड़की को अलिखित परिवर्तन मानता है। ऐसे मामले में, :on!एक करीबी को मजबूर करने के लिए उपयोग करें।
सबुनकु

61

सभी विंडो बंद करने के लिए लेकिन वर्तमान में एक उपयोग:

CTRL+ w,o

वह है, पहले CTRL+ wऔर फिर o


3
अगर कोई CTRL+W oगलती से टाइप करने का कोई तरीका है तो मुझे भी आश्चर्य होता है ।
पाओलो

30

वर्तमान विंडो को बंद करने के लिए दो विकल्प हैं ZZऔर ZQ, जो क्रमशः प्रदर्शित बफ़र में परिवर्तन को सहेजते और सहेजते नहीं हैं।


10
यह निश्चित रूप से "विम तरीका" है, crtl + wo इतना खाली लगता है।
एंडी हेडन

मुझे नापसंद है Zक्योंकि मैं जर्मन हूं। (Spoiler: कीबोर्ड लेआउट यदि आप अक्सर DE / EN सेटिंग के बीच स्विच करते हैं)
Tino

6

कमांड: छिपाना वर्तमान में केंद्रित विंडो को छिपा देगा। मुझे लगता है कि यह वह कार्यशीलता है जिसकी आप तलाश कर रहे हैं।

Windows के बीच नेविगेट करने के लिए Ctrl + w एक नेविगेशन कुंजी (h, j, k, l या तीर कुंजी) द्वारा पीछा किया जाता है।

अधिक जानकारी के लिए :help windowऔर :help hideविम में दौड़ें ।


यह भी खूब रही। Chrome (ssh प्लगइन के साथ) <CW> को "क्लोज़ टैब" के रूप में सभी vim के <cw> विंडो कमांड को प्रभावी ढंग से अक्षम करता है। एक विकल्प होना उपयोगी है।
लगाम

6

से :help opening-window( "एक खिड़की को बंद करने" के लिए खोज - /Closing a window)

  • :q[uit]वर्तमान विंडो और बफ़र को बंद करें। अगर यह आखिरी खिड़की है तो यह भी बाहर निकलेगी
  • :bd[elete] वर्तमान बफ़र को अनलोड करें और वर्तमान विंडो बंद करें
  • :qa[all]या :quita[ll]सभी बफ़र्स और विंडो को बंद कर देगा और वीम से बाहर निकल जाएगा ( :qa!परिवर्तनों को सहेजे बिना बलपूर्वक)
  • :clo[se]वर्तमान विंडो बंद करें लेकिन बफर खुला रखें। यदि केवल एक विंडो है तो यह कमांड विफल हो जाता है
  • :hid[e]वर्तमान विंडो में बफर छिपाएं (और पढ़ें :help hidden)
  • :on[ly] अन्य सभी विंडो बंद करें लेकिन सभी बफ़र्स को खुला छोड़ दें

5

मुझे लगता है कि पाया ctrl+ wखिड़की को बंद करना चाहते है, तो बस करो :q। यह मेरे लिए काम करता है।


यह वास्तव में एक डुप्लिकेट उत्तर है, किसी चीज़ का डुप्लिकेट जो 3+ वर्षों से वहां बैठा है।
वॉरेन पी।

@ArrenP किसी डुबकी की तरह नहीं दिखता है। मुझे कोई अन्य उत्तर नहीं मिला, जिसमें ^W^W:qएक संभावित समाधान के रूप में उल्लेख किया गया हो ताकि एक विभाजन से छुटकारा मिल सके। ध्यान दें कि ^W to the window you want to closeजाहिरा तौर पर ^W^Wआप जिस विंडो को बंद करना चाहते हैं उसके स्विच के कई उपयोगों का अर्थ है ..
Tino

मेरी गलती। अन्य ^ W है तो o
वॉरेन P

2

मैं समझता हूं कि आप अच्छी तरह से इरादा करते हैं, मैं विशेष रूप से बफ़र्स का उपयोग करता हूं, और कभी-कभी ज़रूरत पड़ने पर विभाजित भी करता हूं।

नीचे मेरा कुछ अंश है .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


1

ठीक वैसे ही जैसे दूसरों ने कहा कि ऐसा करने से पहले ctrl+ wऔर फिर दबाना है o। यह वर्तमान विंडो को "अधिकतम" करेगा, जबकि अन्य को बंद कर देगा। यदि आप इसे " अनमैक्सिज्म " करने में सक्षम होना चाहते हैं, तो इसके लिए ज़ूमविइन नामक एक प्लगइन है। अन्यथा आपको स्क्रैच से विंडो सेटअप को फिर से बनाना होगा।


0

ठीक है, मैंने अभी-अभी स्क्रीन सेशन को अलग किया है और मैं फिर से सामान्य स्क्रीन पर वापस आ गया हूं


यह vimविभाजन विंडो मोड को नहीं छोड़ता है, यह सिर्फ screenविभाजन फलक मोड को छोड़ देता है - जिसे आसानी से गलत किया जा सकता है, इसलिए शायद दूसरे भी करते हैं। BTW मुझे यह स्क्रीन फ़ीचर कष्टप्रद लगता है, इसलिए मैं अब डिफ़ॉल्ट हूं tmuxजो सभी विभाजन के साथ एक reattach की अनुमति देता है।
टीनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.