विम: लेफ्ट विंडो राइट / राइट?


215

विम में, क्या खिड़की को बाईं या दाईं ओर "स्थानांतरित" करना संभव है? उदाहरण के लिए, के समान <c-w> rया <c-w> x, लेकिन छोड़ दिया / सही करने के बजाय ऊपर / नीचे?

उदाहरण के लिए, अगर मुझे यह लेआउट मिल गया है:

+---+---+---+
|   |   +---+
| A +---+---+
|   |   |   |
+---+---+---+

मैं इसे इस में बदलना चाहता हूं:

+---+---+---+
|   |   +---+
+---+ A +---+
|   |   |   |
+---+---+---+

जिसके साथ करना मुश्किल / कष्टप्रद हो <c-w> {H,J,K,L}

जवाबों:


425

Ctrl w आपको "विंडोज़ कमांड मोड" देता है, जो निम्न संशोधक की अनुमति देता है:

  • Ctrl w+ R- खिड़कियों को ऊपर / बाएँ घुमाने के लिए।

  • Ctrl w+ r- विंडोज़ को नीचे / दाईं ओर घुमाने के लिए।

आप विंडो की स्थिति बदलने के लिए नेविगेशन कुंजियों के साथ "विंडोज़ कमांड मोड" का भी उपयोग कर सकते हैं:

  • Ctrl w+ L- वर्तमान विंडो को "सबसे दाईं ओर" स्थानांतरित करें

  • Ctrl w+ H- वर्तमान विंडो को "दूर बाएं" पर ले जाएं

  • Ctrl w+ J- वर्तमान विंडो को "बहुत नीचे" पर ले जाएं

  • Ctrl w+ K- वर्तमान विंडो को "बहुत ऊपर" में ले जाएं

की जाँच करें :help window-movingअधिक जानकारी के लिए


2
<c-w> rकेवल लंबवत घूमता है।
डेविड वूल्वर

10
@ डेविड वॉलेवर, आपको इस मामले में ऊपरी केस अक्षरों का उपयोग करने की आवश्यकता है, उदाहरण के लिए: Ctrl-W + Shift-L। मुझे लगता है कि यह वही हो सकता है जिसकी आपको तलाश है।
रिकार्डो वलेरियानो

@ डेविड - बस इसका परीक्षण किया और <cw> r ने मेरे लिए क्षैतिज रूप से काम किया।
ostler.c

3
@ ostler.c एक ऊर्ध्वाधर विभाजन बनाते हैं, फिर एक कॉलम के भीतर एक क्षैतिज विभाजन बनाते हैं। अब <cw> r का उपयोग करें और यह केवल दो खिड़कियों को एक ऊर्ध्वाधर विभाजन के भीतर चक्रित करता है।
चेव

1
@ nn0p नहीं, वे खिड़कियों को चारों ओर घुमाते हैं। <cw> h कर्सर को बाईं ओर अगली विंडो में ले जाएगा, जबकि <cw> H वर्तमान विंडो (कर्सर के साथ) को बाईं ओर ले जाएगा।
मारसॉफ्ट

58

यह मेरे लिए सबसे उपयोगी है (और शायद सवाल का सही जवाब है):

  • Ctrl W+ xया Ctrl W+ Ctrl x- दाईं ओर निकटतम विंडो के साथ वर्तमान केंद्रित विंडो को घुमाता है।

बहुत उपयोगी है जब आप पैन के बीच में होते हैं और दाईं ओर एक के साथ स्वैप करना चाहते हैं। इसके लिए धन्यवाद!
डैनियल आंद्रेई मिनकै

8

क्या आप विंडो को स्वयं या केवल अपने कर्सर स्थिति में स्थानांतरित करना चाहते हैं?

अगला घूर्णन या साइकिल चालन आप पहले ही उल्लेख की तरह करने के लिए, यह खिड़की खुद को स्थानांतरित करने के लिए ही संभव है अब तक क्रमश: के साथ सही, ऊपर, नीचे छोड़ दिया है या,:

^W K
^W J
^W H
^W L

मुझे नहीं लगता कि विंडो को एक स्थान पर दाईं ओर ले जाने के लिए एक डिफ़ॉल्ट अंतर्निहित तरीका है।


1
मैं खिड़कियों को स्थानांतरित करना चाहता हूं, कर्सर को नहीं।
डेविड वोलेवर

1
तो यह है जहाँ तक आप vim विंडो कमांड के साथ जा सकते हैं, अगर यह आपके लिए उपयोगी था तो कृपया इसे समाधान के रूप में चिह्नित करें :-)
Bitterzoet

2
अगर मैं कर सकता तो मैं @Bitterzoet की टिप्पणी को कम करूंगा। उपरोक्त उत्तर देखें
नाथन

1

यह वास्तव में लगता है जैसे विम मानकों के मुख्य नक्शे के साथ ऐसा नहीं कर सकता। दस्तावेज़ीकरण कहता है कि ^ WK, J, H और L कमांड विभाजित होकर और बफ़र को अभी की स्थिति में खोलकर काम करते हैं, इसलिए मैंने इसे एक फंक्शन लिखा है: बफ़र छुपाएं, बाईं ओर ले जाएँ, विभाजित करें और फिर मूल बफर खोलें:

" Rotate a window horizontally to the left
function! RotateLeft()
    let l:curbuf = bufnr('%')
    hide
    wincmd h
    split
    exe 'buf' l:curbuf
endfunc

" Rotate a window horizontally to the right
function! RotateRight()
    let l:curbuf = bufnr('%')
    hide
    wincmd l
    split
    exe 'buf' l:curbuf
endfunc

-6
  • ctrl + h कर्सर को अगली विंडो पर ले जाएं (दाएं)

  • ctrl + l पिछली विंडो पर जाएं (बाएं)

अधिक जानकारी के लिए, कृपया देखें: :help window-moving


3
गलत। Ctrl+h/lविंडो नेविगेशन के लिए मानक बाइंडिंग नहीं हैं (हालांकि वे निश्चित रूप से कॉन्फ़िगर किए जा सकते हैं, और कुछ प्लगइन्स द्वारा प्रस्तुत किए जाते हैं)। और यह वैसे भी मूल प्रश्न का उत्तर नहीं देता है।
14
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.