texto - ¿Cómo navegar múltiples coincidencias ctags en Vim?
que es vim (4)
Use g]
lugar de C-]
para obtener la lista de todas las coincidencias.
Es posible que desee leer :help g]
Estoy usando Ctrl - ] en Vim para navegar usando Ctags. ¿Cómo navego para alternar un archivo si hay varias coincidencias?
Ex. something.publish
en un código base que contiene múltiples apariciones de publish
:
class Foo
def publish
end
end
class Bar
def publish
end
end
:tn[ext]
va a la siguiente etiqueta :tp[revious]
va a la anterior. :ts[elect]
te da una lista para elegir.
:help tag-matchlist
de :help tag-matchlist
para probar cosas más divertidas y emocionantes!
Agregando la respuesta que estaba buscando en última instancia en caso de que ayude a otros:
g<C-]>
saltará a la etiqueta si solo hay una coincidencia y presentará una lista si hay varias coincidencias.
He agregado esta asignación a mi .vimrc para que haga lo que quiero de forma predeterminada:
nnoremap <C-]> g<C-]>
ltag
ltag the_tag_name
lopen
abre una ventana de ubicación con las coincidencias de etiquetas.
Esto es especialmente poderoso con búsquedas de etiquetas de expresiones regulares:
ltag /tag_na
lopen
que mostrará una lista de todas las etiquetas que contienen la cadena tag_na
(por lo tanto, incluye the_tag_name
).
Luego, puede seguir buscando dentro de la lista de ubicaciones, antes de pulsar Intro para saltar a la etiqueta.
Para usarlo para la palabra debajo del cursor, es posible que desee definir el mapa:
nnoremap <leader>l exec("ltag ".expand("<cword>"))<CR>
Entonces, si eres un loco maniático como yo:
command! -nargs=1 Ltag silent ltag <args> | execute "normal /<C-o>" | tab lopen
abrirá una nueva pestaña con la lista de ubicaciones y todas las coincidencias, en lugar de saltar directamente a la pestaña:
:Ltag /my_struct