Vimdiff में एक अलग खंड का विस्तार / पतन कैसे करें?


295

मैंने आज vimdiff का उपयोग करना शुरू कर दिया है, और कुछ चीजें करना चाहता हूं जो मैंने विंडोज आधारित डिफ एडिटर्स पर दी हैं (जैसे एक सेक्शन का विस्तार / पतन, पूर्ण फ़ाइल विस्तार / केवल 3 संदर्भ लाइनों के साथ भिन्न होता है) नीचे, आदि)। मैं वर्तमान में केवल निम्न आदेशों को जानता हूं:

कुंजीपटल अल्प मार्ग:

  • do - वर्तमान विंडो में अन्य विंडो से परिवर्तन प्राप्त करें।

  • dp - वर्तमान विंडो से अन्य विंडो में परिवर्तन करें।

  • ]c - अगले बदलाव पर जाएं।

  • [c - पिछले बदलाव के लिए कूदो।

  • CTRL+ W, w- दूसरी स्प्लिट विंडो में स्विच करें ( CTRL+ W, CTRL+ Wएक ही काम करता है, अगर आप CTRLथोड़ी देर बाद चाबी को छोड़ देते हैं )

क्या कोई मुझे सही दिशा की ओर इशारा कर सकता है ताकि मैं इसी तरह की विशेषताओं को दोहरा सकूं?

यह अच्छा होगा यदि मैं उदाहरण के लिए, लाइनों के चारों ओर विस्तार / पतन कर सकता हूं।


2
परिवर्तनों की लंबी सूची को जोड़ने / वापस करने के लिए शॉर्टकट के लिए, stackoverflow.com/q/6093746/212942
TCSGrad


1
4 साल से अधिक समय के बाद प्रश्न को बंद करते हुए देखने के लिए इसके मनोरंजक, शीर्ष 3 पदों के साथ होने के कारण जब 'विम्डीफ' को अलग कर दिया जाता है!
TCSGrad

देखें: GitHub
Gist

जवाबों:


241

आपके द्वारा उल्लेखित के अलावा, मैं केवल निम्नलिखित का उपयोग करते समय अक्सर उपयोग करता हूं:

  • :diffupdate :diffu-> कई बदलाव करने के बाद, जब उपयोगी बदलाव दिखाई नहीं दे रहा हो, तो रिकॉल को अलग कर दें। ध्यान दें कि यह केवल तभी काम करता है जब फ़ाइलों को vimdiff के अंदर संशोधित किया गया हो। अन्यथा, उपयोग करें:
    • :e फ़ाइलों को फिर से लोड करने के लिए यदि उन्हें vimdiff के बाहर संशोधित किया गया है।
  • :set noscrollbind-> अस्थायी रूप से एक साथ स्क्रॉल करने पर दोनों बफ़र्स पर स्क्रॉल करके, रीनेबल द्वारा :set scrollbindऔर स्क्रॉल करके अक्षम करें ।

आपने जो मांगा था, उसमें से अधिकांश तह है: तह पर उपयोगकर्ता पुस्तिका का अध्याय । विचलन के बाहर मैं कुछ समय का उपयोग करता हूं:

  • zo -> खुली तह।
  • zc -> करीब गुना।

लेकिन आप शायद बेहतर सेवा करेंगे:

  • zr -> तह स्तर को कम करना।
  • zm -> एक और तह स्तर, कृपया।

या और भी:

  • zR -> तह पूरी तरह से कम, मैंने कहा!।
  • zM -> सबसे अधिक गुना!।

दूसरी बात आप, उपयोग n तह की तर्ज के लिए कहा, पर पाया जा सकता विकल्पों पर vim संदर्भ मैनुअल अनुभाग , के माध्यम से अंतर पर अनुभाग :

  • set diffopt=<TAB>, फिर अद्यतन या जोड़ें context:n

आपको उपयोगकर्ता के मैनुअल सेक्शन पर भी एक नज़र डालनी चाहिए


बहुत व्यापक वास्तव में !! मैं आपके द्वारा कहे गए लिंक की जाँच करूँगा, लेकिन जोड़े को अधिक दिनों तक खुला रखने के लिए यह देखने के लिए कि क्या मुझे और अधिक उत्तर मिलेंगे (मैंने एक सप्ताहांत पर पोस्ट किया था, और बहुत से लोग तब सक्रिय नहीं होंगे)।
TCSGrad

वैसे, क्या आप जानते हैं कि विमीडफ को मर्जिंग / 3-वे रिज़ॉल्यूशन आदि के लिए इस्तेमाल किया जा सकता है? यह वास्तव में बहुत अच्छा होगा !!
TCSGrad

1
@ shan23 3-तरफ़ा विलय के लिए (git के लिए), इसे देखें । वहाँ भी svn पर टिप्पणी कर रहे हैं। फिर भी जब आप 4 बफ़र्स है, तो कमांड का पता लगाने की कोशिश कर रहे हैं (do / dp काम नहीं करते)।
कोवेरियन

के लिए :set noscrollbindप्रभावी करने के लिए यह भी किया जाना चाहिए :set nocursorbindइस्तेमाल किया जो कि डिफ़ॉल्ट नहीं है। इसलिए दोनों विकल्पों को समायोजित किया जाना चाहिए।
खूनी

4

मामले को नजरअंदाज करने के लिए सेट करें

शुरू होने के साथ अंतर होता है

 gvim -d main.sql backup.sql &

मुझे लगता है कि कष्टप्रद रूप से एक फ़ाइल में MySQL कीवर्ड हैं जो अन्य अपरकेस को कम करता है और व्यावहारिक रूप से हर दूसरी लाइन पर अंतर दिखाता है

:set diffopt+=icase

यह स्क्रीन को गतिशील रूप से अपडेट करता है और आप आसानी से इसे फिर से बंद कर सकते हैं


हालांकि यह एक अच्छी टिप है, मैं यह नहीं देखता कि यह हाथ में सवाल से कैसे संबंधित है (कैसे विस्तार करें और संक्षिप्त करें विमीफिफ़ में अलग-अलग अनुभाग हैं)।
पॉल स्टेलियन

3

वास्तव में यदि आप करते हैं Ctrl+W W, तो आपको उस अतिरिक्त को जोड़ने की आवश्यकता नहीं होगी Ctrl। एक ही काम करता है।


14
मुझे ^ W ^ की तुलना में जल्दी टाइप करने के लिए ^ W ^ W बहुत तेज लगता है।
हॉब्स

सोचा कि यह उल्लेख योग्य होगा github.com/ankr/dotfiles/blob/master/files/vimrc#L103
akr

0

ctrl + w, w जैसा कि उल्लेख किया गया है का उपयोग फलक से फलक में नेविगेट करने के लिए किया जा सकता है।

अब आप अकेले एक विशेष परिवर्तन का चयन कर सकते हैं और इसे दूसरे फलक पर पेस्ट कर सकते हैं। इस प्रकार मैं एक उदाहरण दे रहा हूं जैसे कि मैं अपना कोड 1 से फलक 2 में बदलना चाहता हूं और वर्तमान में मेरा कर्सर pane1 में है

  • किसी पंक्ति को हाइलाइट करने के लिए Shift-v का उपयोग करें और कोड के उस टुकड़े का चयन करने के लिए ऊपर या नीचे कीज का उपयोग करें, जो दूसरे फलक में आपके परिवर्तनों को चिपकाने के लिए नीचे लिखे चरण 3 से जारी है।

  • दृश्य मोड का उपयोग करें और फिर इसे बदलें

    1 क्लिक 'वी' यह आपको दृश्य मोड पर ले जाएगा 2 अपने आवश्यक कोड का चयन करने के लिए ऊपर या नीचे की कुंजी का उपयोग करें 3 पर क्लिक करें, Esc 'एस्केप कुंजी 4 अब कॉपी करने के लिए' yy 'का उपयोग करें या परिवर्तन करने के लिए' dd '5 do करें' ctrl + w, w 'to pane2 नेविगेट करने के लिए 6 पी' पर क्लिक करें


1
आपके द्वारा निर्दिष्ट (पहली पंक्ति को छोड़कर) संपूर्णता स्वयं की एक विशेषता है, प्रति कथन विमिडिफ नहीं।
TCSGrad 17
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.