2013-01-22 26 views
39

मैं Ctrl - ] Vim में Ctags का उपयोग करके नेविगेट करने के लिए उपयोग कर रहा हूं। यदि एकाधिक मिलान हैं तो मैं वैकल्पिक फ़ाइल पर कैसे जा सकता हूं?विम में एकाधिक सीटीएजी मैचों को कैसे नेविगेट करें?

पूर्व। something.publish एक codebase publish की अनेक गतिविधियां युक्त:

class Foo 
    def publish 
    end 
end 

class Bar 
    def publish 
    end 
end 

उत्तर

57

:tn[ext] अगले टैग करने के लिए चला जाता है, :tp[revious] पिछले एक को जाता है। :ts[elect] आपको चुनने के लिए एक सूची देता है।

:help tag-matchlist अधिक मजेदार और रोमांचक चीजों के लिए प्रयास करने के लिए!

88

सभी मैचों की सूची प्राप्त करने के लिए C-] के बजाय g] का उपयोग करें।

आप इस सवाल का जवाब मैं अंत में मामले में यह दूसरों में मदद करता है के लिए देख रहा था जोड़ना :help g]

6

भी पढ़ सकते हैं:

g<C-]> केवल एक मैच है और एक सूची पेश करेंगे अगर टैग पर चला जाएगा यदि कई मैच हैं।

nnoremap <C-]> g<C-]>

0

ltag

ltag the_tag_name 
lopen 

टैग के साथ एक स्थान विंडो खुलती है:

मैं यह डिफ़ॉल्ट रूप से मैं क्या चाहते हो बनाने के लिए मेरी .vimrc को यह मानचित्रण जोड़ दिया है मैचों।

यह नियमित अभिव्यक्ति टैग खोजों के साथ विशेष रूप से शक्तिशाली है:

ltag /tag_na 
lopen 

जो सभी टैग स्ट्रिंग tag_na (इस प्रकार the_tag_name सहित) शामिल सूची जाएगा।

फिर आप टैग पर कूदने के लिए प्रवेश करने से पहले, स्थान सूची के अंदर आगे खोज सकते हैं।

command! -nargs=1 Ltag silent ltag <args> | execute "normal \<C-o>" | tab lopen 

एक खुलेगा: यदि आप मेरे जैसे एक टैब पागल हैं,

nnoremap <leader>l exec("ltag ".expand("<cword>"))<CR> 

तब:

कर्सर के तहत शब्द के लिए इसके इस्तेमाल के लिये आप नक्शे निर्धारित कर सकते हैं स्थान सूची और सभी मैचों के साथ नया टैब सीधे टैब पर कूदने के बजाय:

:Ltag /my_struct