He estado usando Vim como mi editor de texto por un tiempo y siento que estoy tomando el camino más largo para hacer cualquier cosa. Utilizo ctags para etiquetar mi código base para la navegación y uso grep (aunque de manera ineficiente) para encontrar dónde se utilizan ciertos métodos. Pero tengo la sensación de que hay algunas herramientas muy útiles que no conozco que podrían hacerme más productivo.
¿Cuál es la mejor pila de software que podría usar para la programación general que complementaría a Vim? ¿Cómo navega por una base de código, ejecuta make, envía cambios a su sistema de control de fuente, etc.? ¿Tienes una segunda consola abierta al lado de Vim?
utilities
programming
vim
Louis Salin
fuente
fuente
Respuestas:
Una gran característica de vim es la facilidad de integración con los comandos de shell existentes. Algunas de las herramientas externas más útiles son las que se incluyen en coreutils y otras herramientas simples de manipulación de texto. Por ejemplo, podemos obtener el número de líneas en un archivo con:
o el número de palabras:
Cualquier comando que funcione en el shell funcionará aquí. Esto se puede combinar poderosamente con el comando
:read
(:r
) para poner la salida del comando en el archivo. Por ejemplo:Colocará el recuento de líneas de palabras en el archivo que está editando.
Otra ventaja de esto es reemplazar el texto que está editando actualmente con la salida de uno de estos comandos. Por ejemplo, puede formatear todo el archivo
par
ejecutando el comando:fuente
Encuentro NERDtree indispensable para navegar a través de mi base de código. Además de eso, vale la pena invertir algo de tiempo en dominar el movimiento de sus buffers / ventanas.
fuente
Sea cual sea su idioma, querrá usar una función llamada ctags que le permite navegar por las definiciones de origen. Esto requiere una herramienta externa para generar archivos TAGS que son utilizados por VIM para descubrir las ubicaciones de varias definiciones de código dentro de un proyecto.
Obtenga la exuberante herramienta ctags , funciona para muchos idiomas y es muy fácil de usar.
de VIM
:help ctags
ctags creará un índice de todos los identificadores en un árbol fuente. Luego puede usar los comandos de etiqueta para navegar por su árbol de origen. ver
:help tag-commands
. Lo más fácil es colocar el cursor sobre una palabra clave y presionar CTRL- ]. Para volver a donde viniste, presiona CTRL:TMás allá de esto, es posible que desee ver algunos de los consejos y mejoras de VIM discutidos aquí , es una discusión muy completa de algunas de las cosas que se pueden hacer para mejorar la experiencia de un vimmer.
fuente
Vim es una herramienta muy poderosa, estoy seguro de que todos ustedes ya lo saben. Comenzará a obtener un aumento de productividad utilizando vim en un par de semanas. Pero nunca saturarás tu conocimiento de Vim. Entonces, por mi parte, siempre estoy buscando formas nuevas y eficientes de hacer las cosas en Vim. Hay un tipo llamado Derek Wyatt que ha hecho algunas excelentes capturas de pantalla sobre el uso de Vim, y también sobre los complementos que usa.
Algunos de los complementos que uso
command-t Esto hace que navegar por los archivos sea muy fácil, y es muy inteligente .
fuzzyfinder Utilizo esto principalmente para broswer buffers y cambiar el directorio actual.
NERDTree Este es el mejor complemento de navegador de archivos para vim.
XPTemplate El mejor plugin de plantillas del mundo.
rails.vim Si haces cosas de desarrollo de rails, esto es indispensable.
NerdCommenter Hace que comentar en cualquier tipo de código sea fácil.
Y esos son solo algunos de los complementos que utilizo. Para descargar todos los complementos con mi vimrc, consulte mis archivos de puntos
fuente
Hay un gran complemento para VIM que verifica la sintaxis de Syntastic . También hay muchas otras herramientas disponibles para la gestión de archivos, construcción, etc. Vaya a IRC #vim en freenode.net, hay mucha gente útil allí.
fuente
Mi favorito es cscope. Si ha compilado vim con soporte de cscope, puede usar directamente los comandos de cscope desde VIM. por ejemplo, buscando archivos incluidos, funciones llamadas por la función xyz, etc. Lo he intentado con un repositorio de código fuente muy grande. Esto ayuda mucho.
http://cscope.sourceforge.net/cscope_vim_tutorial.html
fuente
Si está programando en cualquiera de los lenguajes compatibles con GCC (C, C ++, Java, Fortran), entonces Clewn es un gran complemento que integra el depurador GDB en VIM. De hecho, he encontrado que es una de las mejores interfaces para GDB que hay.
fuente
Normalmente configuro una
screen
sesión para cada proyecto. Vim está en la ventana 0, y uso la ventana 1 para una sesión de shell. Si estoy codificando en un idioma que tiene un REPL decente, generalmente lo ejecuto en la ventana 2. Por supuesto, no necesitascreen
hacer esto; puede hacerlo con diferentes ventanas de terminal o con pestañas en un terminal multitab. Creoscreen
que es más estable que otras alternativas: si su aplicación de terminal se bloquea, puede iniciar otra terminal y volver a conectarse a suscreen
sesión aún en ejecución .screen
también es muy rápido para navegar una vez que lo aprende (al igual que vim).Principalmente termino usando la sesión de shell para actividades complicadas de control de versiones como rebase o fusión: se pueden hacer cosas más simples desde la línea de comando de vim (por ejemplo, la
:!git commit % -m 'Added info about
pantalla.'
) o usando el complemento fugitivo . Encuentro los fugitivos:Gmove
(cambiar el nombre del búfer actual tanto en vim como en el índice git) e:Gdiff
(invocar vimdiff en el búfer actual con un punto anterior en su historia) particularmente útiles. También puede hacer cosas como crear un mensaje de confirmación en un búfer de memoria virtual, copiar texto de varias partes de su código y luego confirmar con:%!git commit -F /dev/stdin
También usaré la sesión de shell para pruebas funcionales / de integración si eso es aplicable a lo que sea que esté trabajando, por ejemplo, si estoy escribiendo una utilidad de línea de comandos.
La funcionalidad de corrección rápida de Vim es útil para la depuración, aunque parece que se requiere un complemento diferente para cada idioma en el que desee trabajar. También parecen usar una variedad de técnicas de invocación, mapeo a teclas de función o secuencias de teclas que comienzan con
\
o,
, o a comandos personalizados, o al ser invocado automáticamente cuando se guarda un búfer. Hasta ahora no me he molestado en averiguar esto, y solo leo los resultados de la prueba unitaria o de la pelusa en un búfer de memoria virtual, por ejemplo:r !python -m doctest whatever.py
. Modifique el código, vuelva al búfer de memoriau
virtual, deshaga, luego presione:r
y la flecha hacia arriba (la mayoría de las veces) para recuperar ese comando. Pero puede valer la pena buscar un complemento para esto, dependiendo del idioma en el que trabaje.Para lenguajes compilados populares como C, java, etc.,
:make
se realizará una compilación y el soporte para la lista de soluciones rápidas está bien establecido. Entonces puede hacer:copen
para mostrar el búfer de corrección rápida. Mostrará una lista de errores, uno por línea; golpear Enteren una línea saltará su otra ventana a ese punto en ese archivo.Si está trabajando con varios proyectos a la vez, puede hacer los
:lmake
arreglos para que una lista de errores se almacene en la lista de ubicaciones : es como la lista de soluciones rápidas, pero está asociada con una sola ventana en lugar de ser un singleton dentro de su vim instancia.:lopen
abrirá una lista de ubicaciones para la ventana actual.fuente