¿Cuáles son algunos trucos para navegar el código C con vim?

El punto de Sibin sobre cscope / ctags es quizás el más importante. A continuación se muestra la lista de características de vim que encuentro muy útiles y utilizo regularmente mientras navego / manipulo el código C:

  • Use el complemento ‘Lista de etiquetas’ (http://www.vim.org/scripts/scrip…) que proporciona el comando: Tlist una vez que tenga habilitado ctags / cscope. Esta es la cosa más increíble que he conocido por navegar: abre una columna separada a la derecha con una lista de todas las etiquetas de todos sus buffers abiertos. Coloque el cursor sobre cualquiera de esas etiquetas y presione Entrar y se abrirá la definición en un búfer separado. La columna de la derecha viene con un práctico menú de ayuda, que puede ver presionando F1. Debe sentirse cómodo trabajando con varias ventanas para obtener la mejor experiencia (solo los conceptos básicos como -h / -l para moverse por las ventanas).
  • También es útil para asignar ctags / cscope a una sola clave para evitar ir al terminal para crear las etiquetas o el archivo cscope.out mientras se trabaja con una nueva base de código. Tengo mi F6 asignado a “:! Ctags -R” y “:! Cscope -bR”.
  • Si eres el paréntesis inicial de una función / bloque, presionar Shift + 5 (%) te lleva al final. Esto facilita no solo la navegación, sino también la selección de una función: seleccione la declaración hasta {y luego presione% para seleccionar toda la función. Del mismo modo, para saltar al comienzo de un bloque de código C (while, switch, if, etc.), use el comando [{comando. Para saltar al final de un bloque de código C (while, switch, if, etc.), use el comando]}.
  • Sangrado rápido: seleccione cualquier fragmento de código y presione ‘=’ para sangrarlo. Funciona bien con C / C ++, no estoy seguro acerca de otros lenguajes.
  • El plegado de código (contraer un gran bloque de código entre {}) también es una característica útil, aunque soy ingenuo con esto y uso solo ocasionalmente ‘zr’ y ‘zc’. Los expertos deberían tener más consejos útiles con esto.
  • ‘gd’ cuando el cursor está en una variable lo lleva a la definición de la variable local (primera aparición dentro de una función). ‘gD’ para variable global (primera aparición en el archivo).
  • Si a menudo necesita buscar el uso de las funciones de biblioteca estándar, considere usar un complemento como CRefVim (http://www.vim.org/scripts/scrip…). Hay muchos complementos similares, por lo que puede elegir su gusto. También me gusta poder ver páginas de manual para algunas cosas de C / POSIX en vim (http://vim.wikia.com/wiki/View_m…).

  • Ctags es la forma tradicional.
    : ayuda Moviéndose a través de programas
  • La integración de la base de datos creada por cscope con Vim es la forma más poderosa de navegar a través del código C. (Cscope == Ctags en esteroides)

    Detalles aquí -> http://vim.wikia.com/wiki/Cscope
    Consulte también los archivos de ayuda de Vim ” : h cscope
    Consejo: Pruebe el complemento CCTree
    https://github.com/vim-scripts/C

  • También te sugiero que instales el complemento Trinity ( http://www.vim.org/scripts/scrip …). Te da una sensación IDE dentro de VIM. La parte de Trinity que ayuda en la navegación de archivos es el complemento NerdTree; También se puede instalar de forma independiente.
  • Aprender esto también es bastante útil (no específico de C ):
    http://vim.wikia.com/wiki/Using_… .

    Especialmente las marcas con letras mayúsculas, para moverse entre múltiples archivos.