GNU/Linux >> Tutoriales Linux >  >> Linux

Ctags y Taglist:convierta Vim Editor en un hermoso navegador de código fuente para cualquier lenguaje de programación


Foto cortesía:mint imperial

Este artículo es parte de la serie Vi / Vim Tips and Tricks en curso. Como programador o administrador del sistema, buscará constantemente códigos fuente y scripts de shell.

Las siguientes son algunas actividades típicas que puede realizar mientras explora un archivo de código fuente:

  1. Navegar a la definición de la función especificando el nombre de la función.
  2. Navegando a la definición de función desde 'llamada a función'.
  3. Volviendo de nuevo a la llamada de función desde la definición.
  4. Ver el prototipo/firma de funciones o variables.
  5. Ver el número de funciones en un archivo, etc.,


En este artículo, revisemos cómo realizar las actividades anteriores de manera eficiente en el editor Vim usando ctags y complemento de lista de etiquetas.

Las técnicas mencionadas en este artículo usando el editor Vim se pueden usar para cualquier lenguaje de programación.

Yo. Instalación y configuración del paquete Ctags

Paso 1:Instalación del paquete ctags

# apt-get install exuberant-ctags

(or)

# rpm -ivh ctags-5.5.4-1.i386.rpm
warning: ctags-5.5.4-1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...          ########################################### [100%]
   1:ctags            ########################################### [100%]

Paso 2:Generación de ctags en su código fuente

Vaya al directorio donde se encuentra su código fuente. En el siguiente ejemplo, he almacenado todo mi código fuente de programación C en el directorio ~/src.

# cd ~/src

# ctags *.c

El comando ctags creará etiquetas de nombre de archivo que contendrán toda la información requerida (etiquetas) sobre los archivos de programa *.c. Lo siguiente es una salida parcial de las entradas de etiquetas en el archivo ctags.

# cat tags
AddAcl  dumputils.c     /^AddAcl(PQExpBuffer aclbuf, const char *keyword)$/;"   f       file:
ArchiveEntry    pg_backup_archiver.c    /^ArchiveEntry(Archive *AHX,$/;"        f
AssignDumpId    common.c        /^AssignDumpId(DumpableObject *dobj)$/;"        f

II. 4 poderosos usos de Ctags dentro de Vim Editor

1. Navegue a la definición de la función especificando el nombre de la función usando :ta

En el siguiente ejemplo, :ta main lo llevará a la definición de la función principal dentro de mycprogram.c

# vim mycprogram.c
:ta main

Al usar esta función, puede navegar a cualquier definición de función especificando el nombre de la función.

2. Navegando a la definición de función desde 'llamada a función' usando Ctrl + ]

Cuando el cursor esté debajo de la llamada de función, presione CTRL + ] para ir a la definición de la función. En el siguiente ejemplo, cuando el cursor está en la llamada de función ssh_xcalloc, presionar Ctrl + ] lo llevará a la definición de la función ssh_xcalloc.

# vim mycprogram.c
            av = ssh_xcalloc(argc, sizeof(char *));

Nota: Si los ctags no pudieron encontrar esa función, recibirá el siguiente mensaje en la barra de estado de vim en la parte inferior:E426 etiqueta no encontrada ssh_xcalloc

3. Volviendo de nuevo a la llamada de función desde la definición usando Ctrl + t

Presione CTRL + t, lo que lo llevará nuevamente a la llamada de función.

4. Navegando a través de una lista de nombres de funciones que tienen nombres similares

En este ejemplo, :ta irá a la definición de la función cuyo nombre comienza con get y también crea una lista para navegar con las funciones relevantes.

# vim mycprogram.c

:ta /^get

Los siguientes comandos de vim se pueden usar para navegar a través de funciones relevantes

  • :ts – muestra la lista.
  • :tn – va a la siguiente etiqueta en esa lista.
  • :tp – va a la etiqueta anterior en esa lista.
  • :tf – va a la función que está en la primera de la lista.
  • :tl – va a la función que está en la última de la lista.

III. Complemento Taglist:Vim Editor como navegador de código fuente definitivo

Es posible que los Ctags anteriores no hayan dado una sensación de navegación por el código fuente, ya que están controlados por comandos en lugar de navegar visualmente por el código. Entonces, si desea navegar a través de la fuente como si estuviera navegando en el explorador de archivos, debe usar el complemento vim taglist que convierte a vim en un explorador de código fuente.

El autor del plugin vim taglist Yegappan Lakshmanan, dice al respecto como

El complemento "Lista de etiquetas" es un complemento de navegador de código fuente para Vim y proporciona una descripción general de la estructura de los archivos de código fuente y le permite navegar de manera eficiente a través de archivos de código fuente para diferentes lenguajes de programación.

Paso 1:descarga el complemento Vim Taglist

Descárguelo del sitio web vim.org como se muestra a continuación.

$ cd /usr/src

$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

Paso 2:Instale el complemento TagList Vim

$ mkdir ~/.vim # if the directory does not exist already

$ cd ~/.vim

$ unzip /usr/src/taglist.zip
Archive:  /usr/src/taglist.zip
  inflating: plugin/taglist.vim
  inflating: doc/taglist.txt

Paso 3:habilite el complemento en ~/.vimrc

Agregue la siguiente línea a ~/.vimrc para habilitar el complemento para el editor Vim.

$ vim ~/.vimrc
filetype plugin on

Requisito previo: Se deben instalar ctags para usar el complemento de lista de etiquetas. Pero no es obligatorio generar la lista de etiquetas manualmente mediante el comando ctags para usar el complemento de lista de etiquetas.

IV. 5 características potentes del complemento Taglist Vim

1. Abra la ventana de lista de etiquetas en Vim usando :TlistOpen

# vim mycprogram.c
:TlistOpen

Desde el editor vim, ejecute :TlistOpen como se muestra arriba, que abre la ventana de la lista de etiquetas con las etiquetas del archivo actual, como se muestra en la figura a continuación.


Imagen: Vim:etiqueta de código fuente/ventanas de lista de funciones

2. Saltar a la definición de función dentro de un código fuente

Al hacer clic en el nombre de la función en el panel izquierdo, podrá ir a la definición de la función como se muestra en la figura a continuación.


Figura: Saltar a una definición de función rápidamente

Además de saltar rápidamente a los nombres de las funciones, puede saltar a las clases, estructuras, variables, etc., haciendo clic en los valores correspondientes desde el navegador de etiquetas en el lado izquierdo.

3. Saltar a la definición de la función que está en otro archivo fuente

Cuando está pasando por una función en un archivo fuente y desea ir a la definición de la función que está en otro archivo, puede hacerlo de dos métodos diferentes.

Método 1:

Si tenía los ctags generados para ese archivo, cuando el cursor esté en la llamada de función, presionar CTRL +] lo llevará a la definición de la función. Y automáticamente la ventana de la lista de etiquetas mostrará las etiquetas para ese archivo recién abierto.

Método 2:

Abra otro archivo también en la misma sesión de vim que actualizará la ventana de la lista de etiquetas con la información sobre ese archivo. Busque el nombre de esa función en la ventana de la lista de etiquetas y, al presionar en ese nombre de función en la ventana de la lista de etiquetas, puede ir a la definición de la función.

4. Visualización del prototipo/firma de funciones o variables.

Presione 'espacio' en el nombre de la función o en el nombre de la variable en la ventana de la lista de etiquetas para mostrar el prototipo (firma de la función) en la barra de estado de VIM como se muestra a continuación. En el siguiente ejemplo, haga clic en la función selectDumpableTable desde la ventana de etiquetas y presione la barra espaciadora, que muestra la firma de la función selectDumptableTable en la barra de estado inferior de Vim.


Figura: Muestra la firma de la función en la barra de estado de Vim

5. Ver el número total de funciones o variables en un archivo de código fuente

presione 'espacio' en el tipo de etiqueta en la ventana de lista de etiquetas, que muestra el recuento de la misma. En el siguiente ejemplo, cuando el cursor esté en "función", presione espacio, lo que mostrará el número total de funciones en el código fuente actual.


Figura: Muestra el número total de funciones disponibles en el código fuente

Para escribir de forma eficaz nuevos archivos de código fuente con Vim, consulte nuestros artículos anteriores:

  • Convierta a Vim en su IDE de Perl mediante el complemento perl-support.vim
  • Convierta a Vim en su IDE de C/C++ con el complemento c.vim
  • Convierta a Vim en su Bash-IDE usando el complemento bash-support.

Lecturas recomendadas

Vim 101 Hacks, por Ramesh Natarajan . Soy un adicto a la línea de comandos. Entonces, naturalmente, soy un gran admirador de los editores Vi y Vim. Hace varios años, cuando escribí mucho código C en Linux, solía leer todos los consejos y trucos disponibles del editor Vim. Basado en mi experiencia con el editor de Vim, he escrito el libro electrónico Vim 101 Hacks que contiene 101 ejemplos prácticos sobre varias características avanzadas de Vim que lo harán rápido y productivo en el editor de Vim. Incluso si ha estado usando Vi y Vim Editors durante varios años y no ha leído este libro, hágase un favor y lea este libro. Se sorprenderá con las capacidades del editor Vim.

Impresionantes artículos del editor de Vim

Los siguientes son algunos tutoriales impresionantes del editor Vi / Vim que puede resultarle útil.

  • 12 potentes ejemplos de buscar y reemplazar para Vim Editor
  • Tutorial de macros de Vi y Vim:cómo grabar y reproducir
  • Acelere el navegador Firefox con la funcionalidad Vim Editor usando el complemento Vimperator

Nota: Suscríbase a The Geek Stuff y no se pierda ningún futuro consejos y trucos para editores de Vi y Vim .


Linux
  1. 15 libros para niños que (quieres) amar Linux y el código abierto

  2. vifm:un navegador de archivos de terminal para amantes incondicionales de Vim

  3. Pitivi:un editor de video gratuito y de código abierto para Linux

  4. Obtenga el código fuente para cualquier comando de Linux

  5. Cómo llamar a la función C en C++, función C++ en C (Mezclar C y C++)

5 juegos de carreras y vuelo de código abierto para Linux

Cómo guardar un archivo en Vim/Vi y salir del editor

Complementos útiles del editor Vim para desarrolladores de software - parte 1

Visual Studio Code:un editor de código fuente gratuito y abierto para Ubuntu

Qué es Python:una introducción a un lenguaje de programación multiplataforma

Editor Vi y Vim:5 ejemplos asombrosos para completar palabras automáticamente usando Ctrl-X Magic