380 votes

Conseils et astuces pour Vim et Ctags

Je viens d'installer Ctags (pour aider au développement du C++) avec mon Vim (ou plutôt gVim), et j'aimerais connaître vos commandes, macros, raccourcis, astuces préférés qui vont avec...

Partagez votre meilleur arsenal. Quels sont les autres modules complémentaires de Vim que vous recommanderiez pour le développement de C++ on Vim ?

EDIT Quel autre module complémentaire utiliseriez-vous en conjonction avec Ctags ?

EDIT2 Quelle version de gVim utilisez-vous avec les balises ? Cela fait-il une différence ?

EDIT3 Comment améliorez-vous votre expérience de programmation pour les petits et grands projets ?

286voto

Amjith Points 6850

Ctrl + ] - aller à la définition
Ctrl + T - Revenir en arrière à partir de la définition.
Ctrl + W Ctrl + ] - Ouvrir la définition dans une division horizontale

Ajoutez ces lignes dans vimrc
map <C-\> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>
map <A-]> :vsp <CR>:exec("tag ".expand("<cword>"))<CR>

Ctrl + \ - Ouvrir la définition dans un nouvel onglet
Alt + ] - Ouvrir la définition dans une division verticale

Après que les étiquettes soient générées. Vous pouvez utiliser les touches suivantes pour entrer et sortir des fonctions :

Ctrl + Left MouseClick - Aller à la définition
Ctrl + Right MouseClick - Sauter en arrière à partir de la définition

138voto

uzi Points 2336

Une ligne qui va toujours dans mon .vimrc :

set tags=./tags;/

Cela cherchera dans le répertoire actuel les "tags", et remontera l'arbre vers la racine jusqu'à ce qu'il en trouve un. Autrement dit, vous pouvez vous trouver n'importe où dans l'arbre des sources et pas seulement à la racine.

35voto

nimrodm Points 9191

Un autre plugin utile pour le développement C est cscope Tout comme Ctags vous permet de passer aux définitions, Cscope permet de passer aux en appelant fonctions.

Si vous avez cscope dans votre répertoire ~/bin/, ajoutez ce qui suit à votre .vimrc et utilisez g^] pour aller à la fonction appelante (voir :help cscope).

if has("cscope")
    set csprg=~/bin/cscope
    set csto=0
    set cst
    set nocsverb
    " add any database in current directory
    if filereadable("cscope.out")
        cs add cscope.out
        " else add database pointed to by environment
    elseif $CSCOPE_DB != ""
        cs add $CSCOPE_DB
    endif
endif

J'ai presque oublié... Tout comme les ctags - vous devez générer (et mettre à jour périodiquement) la base de données. J'utilise le script suivant

select_files > cscope.files
ctags -L cscope.files
ctags -e -L cscope.files
cscope -ub -i cscope.files

Où 'select_files' est un autre script qui extrait la liste des fichiers C et des fichiers d'en-tête du Makefile. De cette façon, je n'indexe que les fichiers réellement utilisés par le projet.

24voto

strager Points 41713

Vous pouvez ajouter des répertoires à votre recherche de ctags. Par exemple, j'ai un index ctags construit pour Qt4, et j'ai ceci dans mon .vimrc :

set tags+=/usr/local/share/ctags/qt4

21voto

Johan Points 6127

Tout ce qui précède et...

code_complete : paramètres de fonctions complets, extraits de code, et bien plus encore.

taglist.vim : Navigateur de code source (supporte C/C++, java, perl, python, tcl, sql, php, etc)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X