एक पंक्ति में अधिक विस्तृत तुलना


17

मैं vimdiffफ़ाइलों के बीच अंतर का निरीक्षण करने के लिए उपयोग करता हूं , और कुछ बार यह थोड़ा याद आता है। उदाहरण के लिए, यदि मेरे पास निम्नलिखित दो फाइलें हैं:

//a.c
printf("Hello\n");

तथा:

//b.c
int i = printf("hello\n") + 3;

उन्हें देने में दिखा रहा vimdiffहै:

यहां छवि विवरण दर्ज करें

मैं जो देखना चाहूंगा वह hयह है कि bc में कैपिटल नहीं है।

वहाँ तुलना करने के लिए vimdiff बताने के लिए एक तरीका है (उस पंक्ति में) इसका सिर्फ एक हिस्सा है (मेरा मतलब है, अनदेखा करें int i =और + 3)?


4
Diffchar प्लगइन संभव है कि आप की जरूरत है लेकिन मैं इसके साथ शून्य अनुभव है है। हो सकता है कि इसका उपयोग करने वाला अनुभव कोई अच्छा, विस्तृत जवाब (या शायद एक विकल्प) दे सकता है।
11

जवाबों:


15

मुझे नहीं लगता कि यह विम द्वारा ही किया जा सकता है। से :h view-diffs(जोर मेरा):

hl-DiffText डिफटेक्स्ट चेंजेड टेक्स्ट को चेंज किए गए लाइन के अंदर।  शक्ति
                                पहला किरदार अलग है,
                                और अंतिम चरित्र जो अलग है
                                (लाइन के अंत से खोज)। 
                                बीच में पाठ पर प्रकाश डाला गया है।  इसका मतलब है की
                                बीच में वे हिस्से जो अभी भी हैं
                                वैसे भी हाइलाइट किए जाते हैं।   केवल "आइवाइट" का
                                यहाँ 'diffopt' का उपयोग किया जाता है।

टोकोमी का सुझाव हमें एक कदम करीब ले जाता है। इंस्टॉल करें diffchar( एक प्लगइन ऑटोलैडर का उपयोग करने वालों के लिए गिथब लिंक )। चूंकि v4.7, प्लगइन सक्षम होने के साथ, विम स्वचालित रूप से अधिक सटीक अंतर दिखाता है:

यहां छवि विवरण दर्ज करें

  • आप F7सामान्य और प्लगइन के बीच टॉगल करने के लिए (डिफ़ॉल्ट कीमैप) दबा सकते हैं । के साथ पुन: असाइन करें:

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

    <key>एक उपयुक्त कुंजी कोड के साथ प्रतिस्थापित करना।

  • आप अधिक रंगों का उपयोग कर सकते हैं:

    let g:DiffColors=100
    

+1 लेकिन "एक कदम करीब" मुझे अत्यधिक रूढ़िवादी लगता है। डिफैचर इस समस्या को पूरी तरह से हल करता है IMO।
स्पार्कहॉक

@ शेपरवेक अच्छी तरह से, यह आम तत्वों को एक पंक्ति में नजरअंदाज नहीं करता है (ओपी चाहता है कि केवल परिवर्तन हाइलाइट किए जाएं)
muru

मुझे यकीन नहीं है कि मैं समझता हूं। क्या इस उदाहरण (जैसे printfऔर ello) में सामान्य तत्वों को अनदेखा नहीं किया गया है ?
२१:१० पर स्पार्हुक Sp

1
इस उदाहरण में @Shawhawk, हाँ। लेकिन अधिक जटिल परिवर्तनों के साथ, यह जल्दी से गड़बड़ हो जाता है।
मुरु जुएल

आह ठीक है, तो यह एक छोटी गाड़ी है ... जानकारी के लिए धन्यवाद।
स्पार्कहॉक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.