Je viens d'installer Ctags (pour aider au développement C ++) avec mon Vim (ou plutôt gVim), et j'aimerais connaître vos commandes préférées, macros, raccourcis, astuces qui vont avec ...
Partagez votre meilleur arsenal. Quels autres modules complémentaires Vim recommanderiez-vous pour le développement C ++ sur Vim?
EDIT Quel autre module complémentaire utiliseriez-vous avec Ctags?
EDIT2 Quelle version de gVim utilisez-vous avec les balises? Est-ce que cela fait une différence?
EDIT3 Comment améliorez-vous votre expérience de programmation pour les grands et les petits projets?
vim
ctags
vim-macros
kenorb
la source
la source
closed as not constructive
il y a presque deux ans, il est si constructif pour moiRéponses:
Ctrl+] - aller à la définition
Ctrl+ T- revenir en arrière 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
Une fois les balises générées. Vous pouvez utiliser les touches suivantes pour entrer et sortir des fonctions:
Ctrl+
Left MouseClick
- Aller à la définitionCtrl+
Right MouseClick
- Revenir à la définitionla source
Ctrl-w C-]
vous pouvez faireC-w T
(alias Shift-t) pour changer cette division dans un nouvel onglet.g C-]
est très utile. Il ouvre une boîte de dialogue rapide pour en sélectionner une parmi plusieurs définitions.g]
est également utile. Vous pouvez positionner le curseur sur le nom de la balise et appuyer surg]
pour obtenir une liste des balises correspondantes.Une ligne qui va toujours dans mon .vimrc:
Cela va chercher dans le répertoire courant les "balises", et remonter l'arborescence vers root jusqu'à ce qu'on en trouve un. IOW, vous pouvez être n'importe où dans votre arbre source au lieu de simplement la racine de celui-ci.
la source
cscope
?Un autre plugin utile pour le développement C est cscope Tout comme Ctags vous permet de passer aux définitions, Cscope saute à l' appel fonctions d' .
Si vous avez cscope dans votre répertoire ~ / bin /, ajoutez ce qui suit à votre .vimrc et utilisez g ^] pour accéder à la fonction appelante (voir: aide cscope).
Presque oublié ... Tout comme ctags - vous devez générer (et mettre à jour périodiquement) la base de données. J'utilise le script suivant
Où 'select_files' est un autre script qui extrait la liste des fichiers C et d'en-tête du Makefile. De cette façon, je n'indexe que les fichiers réellement utilisés par le projet.
la source
Vous pouvez ajouter des répertoires à votre recherche ctags. Par exemple, j'ai un index ctags construit pour Qt4, et je l'ai dans mon .vimrc:
la source
Tout ce qui précède et ...
code_complete: paramètre de fonction complet, extraits de code, et bien plus encore.
taglist.vim: Navigateur de code source (prend en charge C / C ++, java, perl, python, tcl, sql, php, etc.)
la source
J'utilise ALT-gauche et ALT-droite pour sauter / pousser de / vers la pile de balises.
Si vous utilisez
hjkl
pour le mouvement, vous pouvez cartographier<M-h>
et à la<M-l>
place.la source
Plusieurs définitions du même nom
<C-w>g<C-]>
ouvrez la définition dans un fractionnement, mais faites également ce:tjump
qui va à la définition ou, s'il y a plusieurs définitions, vous présente une liste de définitions parmi lesquelles choisir.la source
:ptag
commande qui ouvre la définition dans une fenêtre d'aperçu.:h CursorHold-example
qui affiche la balise de l'élément sous le curseur dans la fenêtre d'aperçu après un délai configurable.:help
est parfois génial ... voir:help CTRL-W_g}
et:ptjump
La commande que j'utilise le plus est C-] qui passe à la définition de la fonction sous le curseur. Vous pouvez l'utiliser plus souvent pour suivre plus d'appels. Après cela, Co vous ramènera d'un niveau, Ci va encore plus loin.
la source
J'ai trouvé le plug-in de liste de balises incontournable. Il répertorie toutes les balises qu'il connaît (fichiers que vous avez ouverts) dans une fenêtre séparée et facilite la navigation dans des fichiers plus volumineux.
Je l'utilise principalement pour le développement Python, mais cela ne peut être meilleur que pour C / C ++.
la source
J'ai encapsulé la manipulation de balises dans un plugin expérimental de mes .
En ce qui concerne le développement de C dans vim, je l' ai déjà répondu là - bas : j'utiliser ma propre suite, et quelques autres plugins.
la source
J'adapte mes plugins vim depuis deux ans pour prendre en charge un projet c ++ suffisamment grand. Vous pouvez les consulter.
Ils utilisent ctags et cscsope.
http://www.vim.org/scripts/script.php?script_id=1638
http://www.vim.org/scripts/script.php?script_id=2507
la source
J'ai mis ce qui suit dans mon fichier .gvimrc, qui recherche dans l'arborescence à partir de n'importe quel point un fichier de balises lorsque gvim démarre:
Je régénère ensuite périodiquement un fichier de balises en haut de mon arbre source avec un script qui ressemble à:
la source
J'utilise vim dans les macos, et les ctags originaux ne fonctionnent pas bien, donc je télécharge le plus récent et configure make make install. J'installe ctgas dans / usr / local / bin / ctags (pour conserver l'original)
la source
J'ai adapté la fonction de recherche SetTags () ci-dessus (qui devrait être remplacée par l'équivalent
set tags+=./tags;/
) pour fonctionner avec cscope. Semble fonctionner!la source
Une autre itération sur la fonction SetCscope () ci-dessus. Cela définit le pré-chemin cscope pour obtenir des correspondances sans être dans le répertoire où "cscope.out" est:
la source