2013-08-16 9 views
8

में प्रबंधन के विभाजन एक बड़े और मध्यम आकार के प्रोजेक्ट पर काम करते हुए मैं अक्सर अपनी स्क्रीन पर बहुत से विभाजन के साथ-साथ प्रत्येक टैब में 5-6 विभाजन के साथ खोले गए कई टैब के साथ समाप्त होता हूं। आम तौर पर मैं फीचर बी या बग सी और मेरे नोट्स पर काम से फीचर ए पर काम को अलग करने के लिए विभिन्न निर्देशिकाओं और लॉजिकल वर्कस्पेस के लिए अलग-अलग टैब का उपयोग करता हूं। जब आप इस तरह के और NERDTree, भगोड़ा, Gundo के रूप में प्लगइन्स कई अन्य लोगों के जो अतिरिक्त विभाजन लेना चाहते से अतिरिक्त विभाजन के लिए बहुत कुछ हैविम

enter image description here

इस पागलपन का प्रबंधन एक समस्या बन जाता है। इस तरह के सहायक विभाजन के बाद खुलता है और पूरे सेट अप को बंद करने में ऊंचाई और चौड़ाई में विकृति का परिवर्तन होता है। मेरा मतलब है, कुछ खिड़कियों छोटे हो जाते हैं, कुछ बड़े की तुलना में वे शुरू में थे (बन गया है और मैं मैन्युअल CTRL+W > और CTRL+W < और दोस्तों के साथ उनकी ऊंचाई और चौड़ाई को समायोजित करने के लिए है।

आमतौर पर यह माउस के साथ हर विभाजन का आकार बदलने के ऐसा करने के लिए तेजी से है, लेकिन यह है यहां तक ​​कि विम रास्ता के पास नहीं।

कभी कभी मैं भी कुछ विभाजन स्वैप या सही करने के लिए विभाजन पर ले जाना चाहते हैं। CTRL+W HJKL हमेशा के रूप में वे विभाजन बहुत दूर लात और आकार फिर से बिगाड़ना मदद नहीं करते। रोटेशन CTRL+W r केवल पर काम करता है साधारण मामले

आप कितने बफर, विभाजन और टैब प्रबंधित करते हैं?

संपादित करें: मुझे लगता है कि बंद करने के लिए वोट हैं। प्रश्न आपके लिए बहुत सामान्य प्रतीत हो सकता है, इसलिए एक और ठोस है: बहुत सारे बफर और विभाजन के साथ काम करने का अच्छा वर्कफ़्लो क्या है? (उत्तर में से एक को अलग-अलग टैब की आवश्यकता होती है जब इसे अधिक जगह की आवश्यकता होती है)

+0

'Ctrl' +' 'w' =' (या '^ w =') और अधिक या कम कर देगा समान रूप से वितरित बांट देता है। क्या आप अपना प्रश्न अधिक विशिष्ट बना सकते हैं - आप वास्तव में क्या खोजते हैं? – guessimtoolate

+0

मैं किसी भी छोटे विभाजन को खुलता/बंद करता हूं या बफर के आकार के अनुसार उन्हें आकार देने का एक आसान तरीका हर बार मेरे विभाजन के आकार को गड़बड़ करने का कोई तरीका नहीं ढूंढ रहा हूं। एक और चीज एक प्लगइन या कुछ भी हो सकता है जो कि रीडरिंग स्प्लिट को आसान बनाता है। – imslavko

उत्तर

13

मैं केवल विभाजन का उपयोग करता हूं जब मुझे वास्तव में दो फाइलों की तरफ से आवश्यकता होती है (क्योंकि एक संदर्भ के रूप में उपयोग किया जाता है, आमतौर पर, एचटीएमएल - सीएसएस उदाहरण के लिए)। अन्यथा, मैं सिर्फ एक खिड़की में लोड नियमित बफर का उपयोग करता हूं। मैं nerdtree या कुछ भी नहीं उपयोग करता जो बहुत अधिक जगह ले लेता है।

मैं फ़ाइलों के बीच नेविगेट करने से बचने की कोशिश करता हूं: टैग जाने का एक बेहतर तरीका है।

मेरा विम हमेशा एक बड़ा भूरा आयताकार है।

संपादित

कई "बातें" के साथ कार्य करना हमेशा एक कठिन समस्या को संभालने के लिए किया गया है। और इसलिए जब हम एक ही समय में और उसी स्थान पर उन "चीजों" से निपटने का प्रयास करते हैं। यह एक कठिन समस्या है क्योंकि हम कुछ चीजों से अधिक से निपटने में असमर्थ हैं: हमारे दिमाग को इसके लिए अनुकूलित नहीं किया गया है। यही कारण है कि मेमोरी गेम उतना आसान नहीं है जितना दिखता है, क्यों हम पावरपॉइंट स्लाइड शो के बाद सूचियों और ग्राफों से भरे हुए क्यों याद नहीं कर सकते हैं और क्यों लोग एक तरफ एक फोन के साथ मरते हैं और दूसरे में उनके ड्राइविंग व्हील।

हम एक ही समय में 4 बफ़र्स पर काम करते हैं, विभाजित खिड़कियों जहां वास्तविक काम एक विंडो में किया जाता है और अन्य विंडो संदर्भ (प्रलेखन, एक HTML दस्तावेज जब के लिए प्रयोग किया जाता है स्थितियों के लिए आरक्षित चाहिए नहीं कर सकते हैं क्योंकि हो सीएसएस कर रहा है ...) या प्रतिक्रिया के लिए (लिफ्टिंग, गणना परिणाम ...)।इस तरह के एक सेटअप में, दूसरी खिड़की पर स्विच करने वाले शरीर का एकमात्र हिस्सा हमारी आंखें है: हमें कीबोर्ड शॉर्टकट या माउस की आवश्यकता नहीं है।

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

वैसे भी, विभाजित खिड़कियों के साथ मूल समस्या नियमित बफर और टैब के समान होती है: बफर # 3 पर काम करने के लिए, हमें बफर # 3 पर स्विच करना होगा। चाहे बफर # 3 छुपा हुआ है, शीर्ष दाएं विंडो में प्रदर्शित होता है या किसी अन्य टैब में अप्रासंगिक है, हमें इसे प्राप्त करने के लिए कुछ कुंजियां मारनी होंगी। जब लक्ष्य बफर छुपाया जाता है, तो हम इसे दिखाने के लिए :b3 करते हैं। जब यह शीर्ष दाएं विंडो में होता है, तो हम <C-w>… मैपिंग, डिफ़ॉल्ट या कस्टम के साथ खेलते हैं। जब यह किसी अन्य टैब में होता है तो हम gt करते हैं जब तक कि हम इसे नहीं पाते (या :sb3 जो बहुत अधिक स्मार्ट है)। जो भी स्थानिक सेटअप हम चुनते हैं, हमें अभी भी लक्ष्य पर स्विच करना होगा।

एक समस्या जो केवल आप जिस प्रकार के लेआउट का उपयोग कर रहे हैं उससे संबंधित है यह है कि आपको दो आयामों में सोचना और स्थानांतरित करना चाहिए। निचले बाएं विंडो से ऊपर दाएं विंडो तक कूदना वास्तव में रैखिक नहीं है (जब तक आप <C-w>w का उपयोग नहीं करते) और उस विंडो को देखने से कहीं अधिक सोच और टाइपिंग की आवश्यकता होती है।

एक और समस्या यह है कि वर्कस्पेस कैसे विभाजित होता है और इसके परिणामस्वरूप बफर की संख्या और उनके खिड़कियों के आकार पर इसका परिणाम होता है।

सब कुछ, मेरी राय यह है कि एकाधिक बफर से निपटने का सबसे अच्छा तरीका विंडोज़ और टैब अकेले छोड़ना और एक दुबला वर्कफ़्लो ढूंढना है।

नियमित बफर भी मुश्किल हो सकते हैं: जिस तरह से आप 1,2,5,7 सूची प्राप्त कर सकते हैं, अपने तरीके से अजीब है। लेकिन मेरा मानना ​​है कि बफर-स्विचिंग (विंडो-स्विचिंग के विपरीत) मूल रूप से अधिक सहज और ठोस है।

:bn "show next buffer in the list 
:bp "show previous buffer in the list 
:b3 "show buffer #3 
:bf "show first buffer in the list 
:bl "show last buffer in the list 
:b <tab> "select buffer from a menu 
:b fo<Tab> "select buffer from a menu 
:b foo "show buffer named foo 

निम्नलिखित मानचित्रण स्विचिंग केक का एक टुकड़ा बफ़र्स है, लेकिन आप भी कई बफर-स्विचिंग प्लगइन्स उपलब्ध कोशिश कर सकते हैं।

nnoremap gb :buffers<CR>:b<Space> 

मेरी पसंदीदा नेविगेशन विधि बफर-आधारित नहीं है, हालांकि। आजकल, मुझे वास्तव में को परियोजना की फ़ाइल संरचना सभी को एक साथ जोड़ना और टैग का उपयोग करना बहुत आसान लगता है। जब मैं चारों ओर नेविगेट करता हूं, तो मैं एक विशिष्ट वर्ग या विशिष्ट विधि या विशिष्ट सरणी या जो भी हो जाता हूं। मेरा वर्कस्पेस सिर्फ एक खिड़की है, जिसमें 15 या 20 बफर दिखाए जा रहे हैं और मेरे पास कोई एनईआरडीटी नहीं है, कोई टैब नहीं, मिनीबफएक्सप्लोरर नहीं, कोई टैगलिस्ट नहीं है ... क्योंकि किसी अन्य बफर पर स्विच करने के लिए कम से कम कुछ महत्वपूर्ण प्रेस की आवश्यकता होती है, फिर भी मुझे कोई वैध कारण नहीं दिखता मेरे कार्यक्षेत्र को टुकड़ा करने और मापने के लिए।

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

+0

यह एक उत्कृष्ट दिशा है: बाहर विभाजन के साथ वर्कफ़्लो, लेकिन बहुत सारे अंकों के साथ। इस उत्तर के लिए धन्यवाद। – imslavko

+0

क्या आपके पास बफर प्रबंधित करने पर कोई टिप्पणी है? ': ls' हमेशा बफर से भरा होता है और आपको आवश्यक बफर की संख्या को दृष्टि से ढूंढने में समय लगता है। 'CTRL + 6' अभी भी मदद करता है। – imslavko

+0

कृपया मेरा संपादन देखें। – romainl

3

ctrl-w <N> > को एक बार में आकार बदलने के लिए ctrl-w <N> > आज़माएं। यदि आप अभी तक ऐसा नहीं करते हैं।

मैं अपने बजाय टैब में सामान रखना पसंद करता हूं। और एक अलग टैब पर विभाजित करने के लिए ctrl-w shift-t।

+0

मुझे ctrl-w n> के बारे में पता था, लेकिन यह अनुमान लगाने के लिए मूर्खतापूर्ण लगता है या गिनती है कि "विभाजन" को विभाजित करने के लिए आपको कितनी बदलाव की आवश्यकता है। 'ctrl-w shift-t' - एक महान सामान की तरह दिखता है! धन्यवाद! – imslavko

+0

मुझे 10 से बदलना पड़ता है, फिर देखें और शायद 10 या 20 में बदल जाए और यह आमतौर पर इसके बारे में है। – aragaer

6

विभाजन, या खिड़कियां, जिन्हें आमतौर पर कहा जाता है, नाजुक हैं।

  • जब आप एक बफर हटाते हैं, तो अन्य बफर प्रभावित नहीं होते हैं।
  • जब आप कोई टैब पृष्ठ बंद करते हैं, तो अन्य टैब प्रभावित नहीं होते हैं।
  • जब आप एक विंडो बंद करते हैं, तो आपकी पूरी विंडो लेआउट अप्रत्याशित तरीकों से गड़बड़ हो जाती है, जिसके लिए कठिन पुनर्वसन (जो कि विम में करना मुश्किल और असुविधाजनक होता है) की आवश्यकता होती है।

इसलिए मैं विम में खिड़कियों के चारों ओर केंद्रित वर्कफ़्लो के खिलाफ सलाह दूंगा।

मेरी सलाह: वर्तमान टैब पेज में विंडो की संख्या को छोटा रखें। एक केंद्रित तरीके से विंडोज़ का उपयोग करें और केवल कुछ उपयोगों के लिए (फ़ाइल के विभिन्न हिस्सों को देखकर, फाइलों को अलग करना, हेडर/कार्यान्वयन फाइल, ...)। वर्कस्पेस के लिए टैब पेज का प्रयोग करें। बफ़र्स नेविगेट के कई अन्य साधनों के साथ सहज हो जाओ: बफर सूची, :find और :edit परिवार, फजी खोजक प्लगइन्स, फ़ाइल खोजकर्ता, आदि

+0

इस उत्तर के लिए धन्यवाद! मैं पूरी तरह से विंडोज बनाम टैब बनाम सीखने बफर कुछ याद किया। अब मुझे पता है कि विभाजन केवल कुछ उपयोग-मामलों के लिए अच्छे हैं और 3 से अधिक बफर प्रबंधित करने के लिए मैन्युअल रूप से सर्वोत्तम फिट नहीं हैं। – imslavko

0

कैसे GNU screen अधिक या tmux का उपयोग कर के बारे में? विम में बस खिड़कियां आपको अधिक कंसोल का उपयोग करने के लिए बहुत मदद नहीं करती हैं।

स्क्रीन के साथ आप सत्रों को बचा सकते हैं, साथ ही :mks के साथ vim में भी।

और विम में ctrl+w,h/j/k/l को ctrl+h/j/k/l पर पुनर्निर्मित करें! लंबवत अधिकतम करने के लिए शॉर्टकट भी, क्षैतिज अधिकतम करने और सभी खिड़कियों को समान रूप से आकार देने में मदद करते हैं। आकार बदलने के लिए मेरे पास शॉर्टकट भी हैं, लेकिन अधिकांशतः मैं पूर्ण आकार/आकार बदलने के साथ काम करता हूं, खिड़की प्रबंधन बिना किसी माउस के विम की सबसे अच्छी सुविधा नहीं है, यह और भी बदतर है।

मेरी .vimrc से

अंश:

" WINDOW MANAGEMENT SETTINGS 

"moving from window to window 
nnoremap <C-h> <C-w>h 
nnoremap <C-j> <C-w>j 
nnoremap <C-k> <C-w>k 
nnoremap <C-l> <C-w>l 

"open new blank file 
nnoremap o<C-h> :lefta vsp new<cr> 
nnoremap o<C-j> :bel sp new<cr> 
nnoremap o<C-k> :abo sp new<cr> 
nnoremap o<C-l> :rightb vsp new<cr> 

"move window 
nnoremap <Leader><C-h> <C-W>H 
nnoremap <Leader><C-j> <C-W>J 
nnoremap <Leader><C-k> <C-W>K 
nnoremap <Leader><C-l> <C-W>L 

"maximise horizontally 
map <Leader>= <C-w><Bar> 

"maximise vertically 
map <Leader>- <C-w>_ 

"make all windows equally sized 
map <Leader><Leader> <C-w>= 

"change windowsizes in visual mode 
"horizontally - always three chars else it takes ages 
vnoremap - 3<C-w>< 
vnoremap = 3<C-w>> 

"vertically - always three chars else it takes ages 
vnoremap _ 3<C-w>- 
vnoremap + 3<C-w>+ 

"moving from window to window in visual mode 
"that way you can move from window to window and resize with -,=,_,+ directly as needed 
vnoremap <C-h> <ESC><C-w>hv 
vnoremap <C-j> <ESC><C-w>jv 
vnoremap <C-k> <ESC><C-w>kv 
vnoremap <C-l> <ESC><C-w>lv 

NERDtree के लिए मैं खिड़की दिखाने के लिए और इसे फिर से बंद कर दें। के बाद से कुछ इसके साथ bugged है, मैं इसे खोलने के लिए और एक निश्चित चौड़ाई के लिए यह स्वचालित रूप से आकार बदलने:

nnoremap <Leader><CR> :NERDTreeFind<CR>999<C-w><40<C-w>>010l 
+0

टीएमयूक्स में विभाजित करने से मुझे विम में विभाजन का प्रबंधन करने में मदद मिलेगी? मुझे उम्मीद है कि सुझाव tmux विभाजन में बहुत से vim उदाहरण चलाने के लिए नहीं है? – imslavko

+0

@imslavko पोस्ट थोड़ा अपडेट किया गया है। – sjas

+0

आपने खिड़कियों के बीच चलने या नए खोलने जैसी सुंदर मानक चीजों के लिए बहुत सारे मैपिंग पोस्ट किए हैं, हालांकि यह प्रारंभिक संभाव्यता को संबोधित नहीं करता है: जब आपके पास विभिन्न आकारों के बहुत से विभाजन होते हैं तो उन्हें प्रबंधित करना मुश्किल हो जाता है। – imslavko