2011-08-29 7 views
6

में केस असंवेदनशील टैग खोज सबसे अधिक भाग के लिए, मुझे केस संवेदनशील टैग खोज उचित लगती है। हमारे द्वारा उपयोग की जाने वाली अधिकांश भाषाएं केस संवेदनशील होती हैं, इसलिए यह वांछनीय है।विम

हालांकि, मेरे पास मेरे कार्यस्थल में एक डीएसएल है जो केस असंवेदनशील पहचानकर्ताओं का उपयोग करता है। मैं इस डीएसएल के लिए टैग जेनरेट करता हूं, और मैं इसे फ़ोल्डकेस के साथ भी सॉर्ट कर सकता हूं (और टैग फ़ाइल में उचित ध्वज सेट कर सकता हूं), लेकिन विम अभी भी पहचानकर्ताओं पर केस संवेदनशील मिलान करने लगता है।

मुझे क्या पसंद आएगा यदि विम एक 'फोल्ड केस' टैगफाइल को समझ सके, क्योंकि "यह भाषा केस असंवेदनशील है।" क्या ऐसी कोई सेटिंग है?

मुझे लगता है कि मैं इस फ़ाइल प्रकार के लिए ignorecase चालू कर सकता हूं (मैं टैग फ़ाइल को स्विच करता हूं और फिर भी कुछ अन्य सेटिंग्स बदलता हूं), लेकिन फिर जब मामला मेल नहीं खाता है तो मुझे विम छाल देता है। मैं सिर्फ विम से कहने का एक तरीका पसंद करूंगा, "अरे, यह मामला संवेदनशील नहीं है, इसलिए यह ठीक है, आपको इसके बारे में चिल्लाने की ज़रूरत नहीं है।" आम तौर पर यह मेरे लिए वांछनीय लगता है कि विम टैग टैग को सॉर्ट करने के तरीके से केवल इरादे की व्याख्या कर सकता है, लेकिन शायद यह व्यापक रूप से आयोजित इच्छा नहीं है ...

उत्तर

1

आखिरकार मैंने ignorecase समाधान किया था। मेरे पास इन्हें मेरे vimrc में है:

autocmd BufEnter *     setlocal noignorecase 
autocmd BufEnter *.{dsl-a,dsl-b*} setlocal ignorecase 

परेशान लेकिन समस्या हल हो गई; मुझे आशा थी कि विम टैग फ़ाइल में हेडर को नोटिस करेगा:

!_TAG_FILE_SORTED 2 /0=unsorted, 1=sorted, 2=foldcase/ 

हां ऐसा लगता है कि ऐसा नहीं होता है।


मैं दूसरे दिन एक मुद्दा में भाग गया जो जनता के लिए और दस्तावेज़ीकरण करता है; मेरे द्वारा खोजे जाने वाले कुछ टैग नहीं मिले थे, लेकिन जब मैंने टैग फ़ाइल में देखा तो वे वहां थे।तब मैंने देखा कि उस वस्तु से ऊपर की रेखाएं थीं जो छोड़ी जा रही थीं, जिसमें एक ही प्रमुख पात्र थे लेकिन फिर अंडरस्कोर; मुझे एहसास हुआ कि अंडरस्कोर अक्षरों से पहले छंटनी कर रहा था और सोच रहा था कि क्या यह एक समस्या हो सकती है (अंडरस्कोर छह वर्णों में से एक है जो कैप्टियल जेड और लोअर केस ए के बीच दिखाई देता है लेकिन एकमात्र ऐसा जो एक सी संगत पहचानकर्ता में मान्य है)।

गिगल्स के लिए मैंने मैन्युअल रूप से अपमानजनक अनुभाग का सहारा लिया ताकि अक्षरों के बाद अंडरस्कोर दिखाई दे। मैंने एक न्यूनतम परीक्षण केस भी काम किया और बग्स @ विम के लिए एक बड़ी बग रिपोर्ट लिखी और फिर "उचित संदर्भ उद्धृत करने" के लिए टैग पर दस्तावेज़ों को देखने का फैसला किया। वहां इसे :help tagbsearch के अंत में दफनाया गया था, यानी हम उन लोगों के लिए बहुत कम उपयोग करते हैं जो पुरानी टीएल हैं; डॉ -र्स।

ध्यान दें कि इस काम को काम करने के लिए अपरकेस में फोल्ड किया जाना चाहिए।

मेरे अजगर स्क्रिप्ट के लिए एक एक पंक्ति परिवर्तन मेरी टैग फ़ाइल तय:

if casefold: 
    tags.sort(key=str.upper) # tag file requires case folding to be folded to upper case 
else: 
    tags.sort() 
1

यह एक उपयुक्त उत्तर नहीं है, लेकिन उम्मीद है कि यह एक बन जाएगा!

क्या आप अधिक जानकारी प्रदान करेंगे? जैसे, एक छोटा कामकाजी उदाहरण?

यहां मेरा प्रयास है, लेकिन मुझे यकीन नहीं है कि यह बताता है कि आप किस बारे में बात कर रहे हैं। यदि आप सहयोग करना चाहते हैं तो मैं इसे gist में भी रखूंगा, और फिर हम एक साथ जवाब पा सकते हैं।

टैग:

blah a.txt 1 

a.txt:

bLah 

Gist of same

कदम पुन: पेश करने:

  1. रन vim
  2. :set ignorecase
  3. :tag blah
  4. प्राप्त संदेश करते हैं: "1 या अधिक विभिन्न मामले के साथ टैग का उपयोग का टैग 1"

इसके अलावा, someone asked this question recently on the Vim user mailing list जैसा दिखता है, लेकिन मुझे कोई प्रतिक्रिया दिखाई नहीं दे रही है।

+0

हाँ यह एक समाधान के रूप में करीब है, हालांकि मेरी 'टैग' फ़ाइल में स्रोत फ़ाइल के समान ही मामला है। अर्थात। 'टैग' में पूंजी एल है, लेकिन मैं अभी भी' टैग ब्ला 'करता हूं और "अलग-अलग मामले वाले टैग का उपयोग करके" संदेश प्राप्त करता हूं। यह कष्टप्रद है। :) –

2

मैं अपेक्षाकृत vim के लिए नया हूँ, लेकिन मैं अपने .vimrc को यह जोड़ा गया है और यह अब तक मेरे लिए अच्छी तरह से काम करने लगता है ।

"Tag jumping 

function! TagInsensitiveJump() 
    execute ":tj /\\c" . expand("<cword>") 
endfunction 

nnoremap <C-]> :call TagInsensitiveJump()<CR> 
+1

आप एक ही चीज़ को प्राप्त करने के लिए अपने '.vimrc' में 'केवल अनदेखा करें' सेट कर सकते हैं। –