"Inclure la recherche" est l'un de ces outils:
[I and ]I " search current buffer and included files for
" the word under the cursor, skipping comments
:ilist foo " same as above but for 'foo'
:ilist /foo " same as above but for a word containing 'foo'
En ce qui concerne "inclure la recherche", la "recherche par définition" est également intéressante:
[D and ]D " search current buffer and included files for
" the definition of the symbol under the cursor
:dlist foo " same as above but for definition of 'foo'
:dlist /foo " same as above but for a definition containing 'foo'
:dlist / " list all definitions from the current buffer
" and included files
Les deux outils dépendent d'une variété d'options qui peuvent ou non être définies par vos plugins de type de fichier.
Tu vois :help include-search
.
Vous pouvez également utiliser gd
et gD
comme versions légères de [D
et ]D
.
Tu vois :help gd
.
Dans le tampon actuel, la commande ci-dessous répertorie chaque définition de fonction et son numéro de ligne:
:g/func/#
Tu vois :help :g
.
:grep
et :vimgrep
sont également utiles, ne serait-ce que parce que leur résultat est introduit dans la liste des quickfix avec laquelle vous pouvez naviguer :cn
, :cp
… et affiché dans la fenêtre très pratique des quickfix.
Voir :help :grep
, :help :vimgrep
et :help quickfix
.
En parlant de la liste quickfix / fenêtre, je l' ai écrit cette fonction (basée sur le travail des autres) pour afficher les résultats de [I
, ]I
, :ilist
, [D
, ]D
et :dlist
dans la liste des quickfix / fenêtre. YMMV bien sûr.
Bien que n'étant pas strictement un outil de navigation, je trouve la fenêtre d'aperçu très utile pour jeter un œil à la signature de la fonction avec laquelle je travaille.
Tu vois :help preview-window
.
Cela dit…
Vim ne sait rien de votre code au-delà de quelques modèles d'expression régulière qui peuvent ou non correspondre à votre style de codage ou autre. Cela signifie que la navigation dans le code est mieux effectuée à l'aide d'outils externes tels que ctags, cscope ou GNU GLOBAL.