Uso básico de ctags y refactorización rápida en Vim para C
🔍 Paso 1: Generar el archivo tags
Desde la raíz de tu proyecto, ejecuta:
ctags -R .
Esto crea un archivo tags con todas las funciones, macros, structs, etc. de tus archivos .c y .h.
✨ Paso 2: Saltar a la definición de una función en Vim
Coloca el cursor sobre el nombre de la función y presiona:
<C-]>(Control + ]) → va a la definición<C-t>(Control + t) → vuelve atrás
Por ejemplo:
char *get_next_line(int fd); // Coloca el cursor sobre get_next_line y presiona <C-]>
¡Vas directo a su definición, incluso si está en otro archivo!
🎯 Problema: Cambiar el nombre de una función usada en muchos archivos .c y .h
Supongamos que quieres cambiar read_line por read_buffered_line.
✅ Opción 1: Usar Vim con :args y :argdo
- Carga todos tus archivos fuente:
:args *.c *.h
- Ejecuta el reemplazo en todos los archivos cargados:
:argdo %s/\<read_line\>/read_buffered_line/ge | update
Explicación:
:argscarga todos los archivos fuente para trabajar con ellos.:argdoejecuta un comando en todos los archivos cargados.%s/.../.../ghace la sustitución global.\<...\>asegura que sólo se cambien las palabras exactas, evitando coincidencias parciales (ejemplo: no cambiaalready_read_line).| updateguarda el archivo si hubo cambios.