Acabo de instalar Ctags (para ayudar con el desarrollo de C ++) con mi Vim (o más bien gVim), y me gustaría encontrar sus comandos favoritos, macros, accesos directos, consejos que lo acompañan ...
Comparte tu mejor arsenal. ¿Qué otros complementos de Vim recomendarías para C ++ en el desarrollo de Vim?
EDITAR ¿Qué otro complemento usarías junto con Ctags?
EDIT2 ¿Qué versión de gVim usas con las etiquetas? ¿Hace alguna diferencia?
EDIT3 ¿Cómo mejora su experiencia de programación para proyectos grandes y pequeños?
vim
ctags
vim-macros
kenorb
fuente
fuente
closed as not constructive
casi dos años, es muy constructivo para míRespuestas:
Ctrl+ ]- ir a definición
Ctrl+ T- Saltar hacia atrás desde la definición.
Ctrl+ W Ctrl+ ]- Abre la definición en una división horizontal
Agregue estas líneas en vimrc
map <C-\> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>
map <A-]> :vsp <CR>:exec("tag ".expand("<cword>"))<CR>
Ctrl+ \- Abre la definición en una pestaña nueva
Alt+ ]- Abre la definición en una división vertical
Después de que se generan las etiquetas. Puede usar las siguientes teclas para etiquetar y descartar funciones:
Ctrl+
Left MouseClick
- Ir a la definiciónCtrl+
Right MouseClick
- Volver a la definiciónfuente
Ctrl-w C-]
usted puede hacerC-w T
(también conocido como Shift-t) para cambiar esa división en una nueva pestaña.g C-]
es muy útil. Abre un diálogo rápido para seleccionar uno entre múltiples definiciones.g]
También es útil. Puede colocar el cursor sobre el nombre de la etiqueta y presionarg]
para obtener una lista de etiquetas coincidentes.Una línea que siempre va en mi .vimrc:
Esto buscará "etiquetas" en el directorio actual y trabajará el árbol hacia la raíz hasta encontrar uno. IOW, puedes estar en cualquier parte de tu árbol de origen en lugar de solo la raíz del mismo.
fuente
cscope
?Otro complemento útil para el desarrollo de C es cscope. Así como Ctags le permite saltar a las definiciones, Cscope salta a la llamada funciones de .
Si tiene cscope en su directorio ~ / bin /, agregue lo siguiente a su .vimrc y use g ^] para ir a la función de llamada (consulte: ayuda cscope).
Casi lo olvido ... Al igual que ctags, debe generar (y actualizar periódicamente) la base de datos. Yo uso el siguiente script
Donde 'select_files' es otro script que extrae la lista de archivos C y de encabezado del Makefile. De esta manera indexo solo los archivos realmente utilizados por el proyecto.
fuente
Puede agregar directorios a su búsqueda de ctags. Por ejemplo, tengo un índice ctags creado para Qt4, y tengo esto en mi .vimrc:
fuente
Todo lo anterior y ...
code_complete: parámetro de función completo, fragmentos de código y mucho más.
taglist.vim: navegador de código fuente (admite C / C ++, java, perl, python, tcl, sql, php, etc.)
fuente
Uso ALT-izquierda y ALT-derecha para hacer estallar / empujar desde / a la pila de etiquetas.
Si usas
hjkl
para movimiento puedes mapear<M-h>
y en su<M-l>
lugar.fuente
Varias definiciones del mismo nombre.
<C-w>g<C-]>
abra la definición en una división, pero también haga lo:tjump
que va a la definición o, si hay varias definiciones, le presenta una lista de definiciones para elegir.fuente
:ptag
comando que abre la definición en una ventana de vista previa.:h CursorHold-example
que se muestra la etiqueta del elemento debajo del cursor en la ventana de vista previa después de un tiempo de espera configurable.:help
es impresionante a veces ... ver:help CTRL-W_g}
y:ptjump
El comando que más uso es C-], que salta a la definición de la función debajo del cursor. Puede usarlo con más frecuencia para seguir más llamadas. Después de eso, Co te traerá de vuelta un nivel, Ci profundiza nuevamente.
fuente
He encontrado que el complemento de taglist es imprescindible. Enumera todas las etiquetas que conoce (archivos que ha abierto) en una ventana separada y facilita la navegación por archivos más grandes.
Lo uso principalmente para el desarrollo de Python, pero solo puede ser mejor para C / C ++.
fuente
He encapsulado la manipulación de etiquetas en un complemento experimental mío.
Con respecto al desarrollo de C ++ en vim, ya he respondido allí : uso mi propia suite y algunos otros complementos.
fuente
He estado adaptando mis complementos vim durante dos años para admitir un proyecto c ++ lo suficientemente grande. Puedes echarles un vistazo.
Usan ctags y cscsope.
http://www.vim.org/scripts/script.php?script_id=1638
http://www.vim.org/scripts/script.php?script_id=2507
fuente
Puse lo siguiente en mi archivo .gvimrc, que busca en el árbol desde cualquier punto un archivo de etiquetas cuando se inicia gvim:
Luego regenero periódicamente un archivo de etiquetas en la parte superior de mi árbol de origen con un script que se ve así:
fuente
Uso vim en macos, y los ctags originales no funcionan bien, así que descargo los más nuevos y configuro make make install. Instalo ctgas en / usr / local / bin / ctags (para mantener el original)
fuente
Adapté la función de búsqueda SetTags () anterior (que debería ser reemplazada por el equivalente
set tags+=./tags;/
) para trabajar para cscope. ¡Parece funcionar!fuente
Otra iteración en la función SetCscope () anterior. Eso establece la ruta previa de cscope para obtener coincidencias sin estar en el directorio donde "cscope.out" es:
fuente