"Incluir búsqueda" es una de esas herramientas:
[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'
Relacionado con "incluir búsqueda", "búsqueda de definición" también es interesante:
[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
Ambas herramientas dependen de una variedad de opciones que los complementos de tipo de archivo pueden establecer o no.
Ver :help include-search
.
También puede usar gd
y gD
como versiones livianas de [D
y ]D
.
Ver :help gd
.
En el búfer actual, el siguiente comando enumerará cada definición de función y su número de línea:
:g/func/#
Ver :help :g
.
:grep
y :vimgrep
también son útiles, aunque sólo sea porque su resultado se introduce en la lista quickfix que se puede navegar con :cn
, :cp
... y se muestran en la ventana quickfix muy práctico.
Ver :help :grep
, :help :vimgrep
y :help quickfix
.
Hablando de la lista quickfix / ventana, escribí esta función (basado en el trabajo de otros) para mostrar los resultados de [I
, ]I
, :ilist
, [D
, ]D
y :dlist
en la lista quickfix / ventana. YMMV por supuesto.
Aunque no es estrictamente una herramienta de navegación, la ventana de vista previa me parece muy útil para echar un vistazo a la firma de la función con la que estoy trabajando.
Ver :help preview-window
.
Dicho eso ...
Vim no sabe nada sobre su código más allá de unos pocos patrones de expresiones regulares que pueden o no ajustarse a su estilo de codificación o lo que sea. Esto significa que la navegación de código se realiza mejor con la ayuda de herramientas externas como ctags, cscope o GNU GLOBAL.