आप अपनी वर्तमान खिड़कियों को क्षैतिज विभाजन से ऊर्ध्वाधर विभाजन और विम में इसके विपरीत कैसे स्विच कर सकते हैं?
मैंने ऐसा कुछ समय पहले किया था, लेकिन मैं फिर से चाबी नहीं ढूंढ सका।
आप अपनी वर्तमान खिड़कियों को क्षैतिज विभाजन से ऊर्ध्वाधर विभाजन और विम में इसके विपरीत कैसे स्विच कर सकते हैं?
मैंने ऐसा कुछ समय पहले किया था, लेकिन मैं फिर से चाबी नहीं ढूंढ सका।
जवाबों:
विम मेलिंग सूची कहती है (बेहतर पठनीयता के लिए पुन: स्वरूपित):
क्षैतिज रूप से विभाजित करने के लिए दो लंबवत विभाजन खिड़कियों को बदलने के लिए
Ctrl- w t Ctrl-w K
क्षैतिज रूप से लंबवत:
Ctrl- w t Ctrl-w H
स्पष्टीकरण:
Ctrl- w t पहले (topleft) विंडो को करंट बनाता है
Ctrl- w K वर्तमान विंडो को बहुत ऊपर पूर्ण-चौड़ाई में ले जाता है
Ctrl- w H वर्तमान विंडो को बाईं ओर पूरी ऊंचाई तक ले जाता है
ध्यान दें कि टी लोअरकेस है, और के और एच अपरकेस हैं।
इसके अलावा, केवल दो खिड़कियों के साथ, ऐसा लगता है जैसे आप Ctrl- w tभाग को गिरा सकते हैं क्योंकि यदि आप पहले से ही केवल दो खिड़कियों में से एक में हैं, तो इसे चालू करने का क्या मतलब है?
:nmap <leader>th <C-w>t<C-w>H
और:nmap <leader>tk <C-w>t<C-w>K
Ctrl- wइसके बादH , J, Kया L(राजधानी) वर्तमान विंडो दूर चले जाएँगे left
, bottom
, top
या right
सामान्य कर्सर नेविगेशन क्रमशः की तरह।
निचले मामले के समकक्ष खिड़की को स्थानांतरित करने के बजाय फोकस को स्थानांतरित करते हैं।
Ctrl
- w
(मुझे नहीं पता कि आपके उदाहरण में ^
इसका मतलब Ctrl
है)।
^
है कि इसका मतलब है Ctrl
।
जब आपके पास दो या अधिक खिड़कियां क्षैतिज या लंबवत रूप से खुलती हैं और उन सभी को स्विच करना चाहती हैं को अन्य अभिविन्यास , तो आप निम्नलिखित का उपयोग कर सकते हैं:
(क्षैतिज पर स्विच करें)
:windo wincmd K
(ऊर्ध्वाधर पर स्विच करें)
:windo wincmd H
यह प्रभावी रूप से व्यक्तिगत रूप से प्रत्येक विंडो पर जा रहा है और उपयोग कर रहा है ^WKया ^WH।
निम्न पूर्व कमांड किसी भी संख्या में विंडोज़ को फिर से विभाजित करेगी (पुनः):
:vertical ball
:ball
यदि छिपे हुए बफ़र्स हैं, तो इन आदेशों को जारी करने से छिपे हुए बफ़र्स भी दिखाई देंगे।
:vert[ical] ball
डॉक्टर :vert ball
में भी ठीक है और कम है।
:ball
3 ऊर्ध्वाधर खिड़कियों को 2 क्षैतिज खिड़कियों तक कम कर देता है, जबकि 3 ऊर्ध्वाधर खिड़कियों को 3 ऊर्ध्वाधर खिड़कियों को :vert ball
सही ढंग से मैप करता है।
क्षैतिज से ऊर्ध्वाधर विभाजन
Ctrl+ Wविंडो कमांड के लिए, उसके बाद Shift+ Hया Shift+L
ऊर्ध्वाधर से क्षैतिज विभाजन
Ctrl+ Wविंडो कमांड के लिए, उसके बाद Shift+ Kया Shift+J
दोनों समाधान तब लागू होते हैं जब केवल दो खिड़कियां मौजूद होती हैं।
इन दोनों पंक्तियों को इसमें जोड़ें .vimrc
:
cabbrev help vert help
cabbrev h vert h
:vert[ical] {cmd}
हमेशा cmd
एक लंबवत विभाजन विंडो में निष्पादित होता है ।
स्टीव के उत्तर से प्रेरित होकर, मैंने सरल कार्य लिखा जो कि वर्तमान टैब में सभी खिड़कियों के लिए ऊर्ध्वाधर और क्षैतिज विभाजन के बीच टॉगल करता है। आप इसे नीचे अंतिम पंक्ति में मैपिंग की तरह बांध सकते हैं।
function! ToggleWindowHorizontalVerticalSplit()
if !exists('t:splitType')
let t:splitType = 'vertical'
endif
if t:splitType == 'vertical' " is vertical switch to horizontal
windo wincmd K
let t:splitType = 'horizontal'
else " is horizontal switch to vertical
windo wincmd H
let t:splitType = 'vertical'
endif
endfunction
nnoremap <silent> <leader>wt :call ToggleWindowHorizontalVerticalSplit()<cr>
if winnr() == 1 windo wincmd J windo wincmd k else windo wincmd J endif
और if winnr() == 1 windo wincmd L windo wincmd h else windo wincmd L endif
आशा है कि समझ में आता है।
ऊपर मार्क रुशकोफ की टिप के बाद , यहाँ मेरी मैपिंग है:
" vertical to horizontal ( | -> -- )
noremap <c-w>- <c-w>t<c-w>K
" horizontal to vertical ( -- -> | )
noremap <c-w>\| <c-w>t<c-w>H
noremap <c-w>\ <c-w>t<c-w>H
noremap <c-w>/ <c-w>t<c-w>H
संपादित करें: उपयोग Ctrl- w rदो खिड़कियों को स्वैप करने के लिए अगर वे अच्छे क्रम में नहीं हैं।