2011-11-10 5 views
7

विम का उपयोग करते हुए मठ में उद्धृत रंग भिन्नता का सबसे अच्छा तरीका क्या है?विम में मठ द्वारा उद्धृत एक अंतर को कैसे रंगा जाए?

अगर मुझे लगाव के रूप में एक अंतर प्राप्त होता है, तो मैं कुछ पंक्तियों पर टिप्पणी करना चाहता हूं, लेकिन म्यूट का जवाब देते हुए उद्धरण चिह्न (>) जोड़ता है जो मेरे लिए ठीक है, लेकिन फिर यह विम में भिन्न रंग को तोड़ देता है।

पहले > वर्णों के साथ भी मिलान करने के लिए वर्तमान diff पैटर्न में कैसे जोड़ें? (यह बेहतर होगा अधिक ^[> ] पैटर्न मैच के लिए)

diff का उदाहरण उद्धृत संदेश:

> @@ -52,22 +48,17 @@ 
> -msgid "foo is deprecated." 
> +msgid "bar is deprecated." 

उत्तर

0

मैं indent_string इसे से स्थापित करने के लिए सुझाव है कि एक रिक्त स्ट्रिंग पर डिफ़ॉल्ट मान (">") है मैक्रो का उपयोग कर। एक कुंजी ", आर" बाध्य साथ उदाहरण:

macro index ,r ":set indent_string=\"\"<enter><reply>" 

आप वापस डिफ़ॉल्ट करने के लिए आदेश के बाद यह निर्धारित करने की आवश्यकता होगी। तो कुछ की तरह:

macro index ,r ":set indent_string=\"\"<enter><reply>:set indent_string=\"> \"<enter>" 

(ध्यान रखना उन परीक्षण नहीं कर रहे हैं - बस यहाँ वाक्य रचना अनुमान लगा।)

लेकिन एक और मुद्दा है - vim fileformat को "मेल" या कुछ और की तरह सेट में आमतौर पर खुल जाता है उस। आपको इसे स्पष्ट रूप से "diff" पर सेट करने की आवश्यकता होगी। तो विम में आपको:

:set filetype=diff 
:syntax on 

शायद एक और मैक्रो या ऐसा कुछ। मुझे पता है कि यह आदर्श नहीं है, लेकिन यह कम से कम कुछ है ;-) शुभकामनाएँ।

1

मैं एक कस्टम वाक्यविन्यास फ़ाइल लिख कर शुरुआत करते हैं, का कहना है कि ~/.vim/वाक्य रचना/muttdiff.vim:

syn match quote "^>* " 
syn match quotedDeletion "^>* *-.*" contains=quote 
syn match quotedAddition "^>* *+.*" contains=quote 

hi quotedDeletion ctermfg=red 
hi quotedAddition ctermfg=green 
hi quote ctermfg=white 

और यह एक मठ संदेश संपादन कर रहे हों vim स्रोत फ़ाइल बनाते हैं।

यदि आप सीखना चाहते हैं कि विम के लिए कस्टम सिंटैक्स फ़ाइल कैसे बनाएं, तो यह एक अच्छी शुरुआत है।

संबंधित मुद्दे