¿Cómo puedo hacer que vim muestre la clase y el método actuales que estoy editando?

15

¿Alguien sabe si es posible (o sabe de un script o complemento vim existente) que pueda crear una "barra de estado" que muestre el nombre de la clase y método (o función) actual que estoy editando?

Me imagino que se conectaría al analizador de sintaxis para el tipo de archivo del búfer actual y mostraría un rastro de ruta para mostrar lo que está editando actualmente. No conozco vimscript lo suficientemente bien como para sugerir más que eso, pero si aún no hay buenas soluciones, puedo comenzar a hackear una, ¡así que las sugerencias sobre dónde comenzar también son bienvenidas!

dcrosta
fuente

Respuestas:

7

Este script coloca el nombre de la función actual en la barra de título y / o la línea de estado. Utiliza ctags para generar una lista de etiquetas para el archivo actual y supone que la etiqueta que precede a la ubicación del cursor es el nombre de la función actual. Como usa ctags, se puede personalizar para trabajar con diferentes idiomas, incluso con archivos de texto estructurados. Funciona bien en la práctica, pero tiene algunas limitaciones. Por lo menos, podría darte un punto de partida para hackear.

garyjohn
fuente
6

Esto funcionará si instala los complementos de la línea aérea y la barra de etiquetas . Estos dos complementos se integran automáticamente y obtendrá la función actual que se muestra en la barra de estado. Si desea tener la jerarquía de objetos completa (por ejemplo, clase + método), deberá configurarla en su .vimrc:

let g:airline#extensions#tagbar#flags = 'f'  " show full tag hierarchy

Es posible que deba configurar el archivo de etiquetas para la barra de etiquetas para identificar la posición actual del código, si aún no está usando ctags. Si aún no lo sabe, aquí hay una breve introducción a ctags .

Karl Bartel
fuente