Estoy tratando de reunir una caja de herramientas de comandos / consultas de Vim, en modo comando o búsqueda, para navegar por una base de código sin usar Ctags u otras herramientas externas. Los Ctags son geniales, pero el soporte puede variar según el entorno de desarrollo en el que esté atascado. Me gustaría confiar en el conocimiento de Vim.
9

gd. Esto lleva el cursor a la declaración local de la variable debajo del cursor.Respuestas:
"Incluir búsqueda" es una de esas herramientas:
Relacionado con "incluir búsqueda", "búsqueda de definición" también es interesante:
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
gdygDcomo versiones livianas de[Dy]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:
Ver
:help :g.:grepy:vimgreptambié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 :vimgrepy: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,]Dy:dlisten 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.
fuente
Hay muchas formas de navegar a través del código (incluido en Vim y externo), todavía las descubro. Lo que uso en el trabajo diario es:
gf-commandCtrl+O,Ctrl+I- retroceder o avanzar en el "historial" de la navegacióng;- saltar al último lugar editado en el archivo'[some_letter]comando, si la letra es mayúscula, obtendrá una marca a la que se podrá acceder desde cualquier archivo (búfer).fuente