Problème avec ctags+VIM
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 16:41:54
0
2
697

Après avoir généré avec ctags -R, vous devez exécuter manuellement set tags=..../tags à chaque fois que vous entrez dans l'édition VIM. J'ai pensé à un moyen d'utiliser ctags -f pour placer le fichier de balises à l'endroit spécifié, puis de définir set tags=.... dans vimrc Enfin, j'ai trouvé que le fichier de balises pouvait effectivement être trouvé, mais en sautant, il est basé sur le fichier de balises. Il provient du répertoire racine, pas du répertoire racine du projet. Existe-t-il un moyen d'éviter de définir des balises à chaque fois ?

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(2)
某草草

Vous devez simplement spécifier le chemin du fichier généré lors de l'exécution de la commande ctags.

Voici comment définir les options tags :

set tags+=./../tags,./../../tags,./../../../tags

De cette façon, si vous n'êtes pas trop impliqué dans le projet, vous pouvez toujours retrouver le fichier de tags de ce projet.

PS : les plug-ins taglist et tagbar sont très utiles =w=

Peter_Zhu

En plus de définir " set tags+=./../tags,./../../tags,./../../../tags, vous pouvez essayer le méthodes suivantes (Par exemple, si les balises du noyau sont trop volumineuses, il est préférable de ne pas les charger automatiquement, cela n'est donc pas recommandé lorsque le projet est particulièrement volumineux) " set tags+=./../tags,./../../tags,./../../../tags外,可以尝试下面的方法(例如内核的tags实在太大,最好不要自动载入,所以不推荐在项目特别大时这么做)

vim 自动上级目录查找递归加载ctags和cscope

原文在此,我增加了目录层数,以及加入了GTAGS(参考GNU golbal)

注意:我的函数里GTAGS的[pre-path] (参考:help cscope)是当前目录是:pwd

vim recherche automatiquement les répertoires de niveau supérieur et charge récursivement les ctags et cscope

Le texte original est ici, j'ai augmenté le nombre de niveaux de répertoire et ajouté des GTAGS (voir GNU golbal)
🎜Remarque : Le [pré-chemin] de GTAGS dans ma fonction (référence : help cscope) est le résultat du fait que le répertoire actuel est :pwd🎜 🎜
function! AutoLoadCTagsAndCScope()
    let max = 10
    let dir = './'
    let i = 0
    let break = 0
    while isdirectory(dir) && i < max
        if filereadable(dir . 'GTAGS')
            execute 'cs add ' . dir . 'GTAGS ' . glob("`pwd`")
            let break = 1
        endif
        if filereadable(dir . 'cscope.out')
            execute 'cs add ' . dir . 'cscope.out'
            let break = 1
        endif
        if filereadable(dir . 'tags')
            execute 'set tags =' . dir . 'tags'
            let break = 1
        endif
        if break == 1
            execute 'lcd ' . dir
            break
        endif
        let dir = dir . '../'
        let i = i + 1
    endwhile
endf
nmap <F7> :call AutoLoadCTagsAndCScope()<CR>
" call AutoLoadCTagsAndCScope()
" http://vifix.cn/blog/vim-auto-load-ctags-and-cscope.html
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal