Estoy considerando si debería comenzar a usar VIM nuevamente en lugar de un IDE. ¿Cuáles son las características más útiles de VIM que no son estándar en un IDE?
ide
vim
comparison
Casebash
fuente
fuente
emacs
. ;-)Respuestas:
No creo que sean necesariamente las características avanzadas de VIM lo que lo hacen tan poderoso. Es el hecho de que nunca tienes que quitar las manos del teclado para hacer nada. Encontrar algo en un archivo enorme es tan simple como un par de pulsaciones de teclas. Abrir y cerrar varios archivos en la misma ventana también es increíblemente rápido.
Si bien puede no parecer intuitivo al principio, vale la pena su tiempo. Incluso si no lo usa como su IDE estándar (generalmente uso Visual Studio o Eclipse, por ejemplo), se encontrará usando VIM para abrir y editar archivos rápidamente porque se vuelve mucho más rápido que esperar a que el IDE carga.
Invierta el tiempo para aprender a usar VIM bien y nunca se arrepentirá. Yo diría que es comparable a aprender a tipear.
fuente
Para mí, el
:global
comando es una aplicación asesina. Ejecutará comandos vim arbitrarios en cualquier línea que coincida (o no coincida) con una expresión regular.Aquí hay unos ejemplos:
El comportamiento predeterminado es enumerar cada línea que coincida, por lo que:
enumerará todas las líneas que contienen el texto "TODO:"
cambie 'Mickey' a 'Minnie' en cualquier línea que también contenga la palabra 'Mouse'
Los comandos pueden tener su propio rango, por lo que esto se eliminará de cada línea con "TODO:" a la siguiente línea en blanco:
: g / TODO: /., / ^ $ / d
Uso: g! ejecutar en cada línea que NO coincida con la expresión regular, por ejemplo, para reemplazar "emacs" con "vim", excepto en las líneas que contienen la palabra "sucks":
fuente
La capacidad de eliminar todo lo que se encuentra entre un conjunto de símbolos emparejados es increíblemente útil. Por ejemplo, con bastante frecuencia, me encuentro con ganas de reemplazar una cadena en el código. Entonces,
di"
mientras el cursor esté en el bloque, se eliminará la cadena, mientras se mantiene""
intacto, y se colocará el cursor entre los dos caracteres de comillas.da"
hace lo mismo, pero también elimina los caracteres de comillas.fuente
ci"
elimina y coloca el cursor en modo de inserción para que pueda comenzar a escribir de inmediato.'Finalización de palabras clave en modo de inserción'. Ctrl-P y Ctrl-N en modo de inserción para buscar en el texto e intentar completar cualquier nombre de variable que esté escribiendo. Nunca he visto esto en ningún otro IDE y realmente lo extraño. La finalización del código en IDE simplemente no es lo mismo.
fuente
^X^O
omni-completa en modo de inserción, si lo tiene habilitado. Pero tienes razón, me encuentro usando la finalización de palabras clave mucho más que omni-complete.Otra característica que encuentro increíblemente útil es la capacidad de cambiar la sangría.
:15,30>>
sangra todas las líneas desde 15-30 (inclusive) dos veces, mientras que:15,30<<
sangra las mismas líneas dos veces.fuente
=
tan útil, si no más, útil que<<
y>>
.El comando dd (eliminar la línea actual). Yo uso este mucho.
Además, poder escribir algo como 3dd y eliminar las siguientes 3 líneas es maravilloso. Nunca he visto esto en otro editor = D
fuente
El
c
comando Por ejemplo,ci"
para cambiar entre comillas.cw
para cambiar de palabra Muchos trucos útiles con él.fuente
El
.
comando Repite el último comando.fuente
Esc ! }
le mete el párrafo actual apagado a un filtro de línea de comandos comofmt
owc
owhich
y los resultados volver al editor.fuente
Acceso rápido a la línea de comandos. CTRL + Z o: wqa me dará una línea de comando en menos de 1 segundo sin que mi mano deje el teclado.
fuente
:!/bin/bash
. Yo uso con:!
bastante frecuencia.:sh
Que puedo usar
hjkl
para mover el cursor sin tener que abandonar el inicio del teclado. Tengo la mayoría de los programas (como lectores de PDF), que le permiten cambiar las combinaciones de teclas, configurar para usar las teclas de movimiento Vim para desplazarse, etc.fuente
Esto es bastante difícil de responder, debido en parte a la vaguedad de la pregunta, y al hecho de que los IDE difieren, y muchos proporcionan características que otros no (y el hecho de que solo tengo algunos de ellos).
Sin embargo, lo que creo que distingue a Vim de otros editores (sí, incluso Emacs, en este caso) es que realmente es un gran editor . Con el paso del tiempo, he usado muchos editores, y honestamente puedo decir que muy pocos vienen con un conjunto tan completo de funciones para manipular texto, como lo hace Vim.
Mi estilo de manipulación de texto, por ejemplo, incluye muy a menudo el uso de duplicación (línea / selección de varias líneas) y movimiento (línea / selección de varias líneas) hacia arriba y hacia abajo, para lo cual hace tiempo que he definido atajos rápidos. Echo de menos esas características en la mayoría de los IDE (aunque he oído que ReSharper para VS tiene algo similar).
fuente
¿Sabías que hay un complemento vi para eclipse ? Su precio es de 15 euros (US $ 20 Ish) pero es lo que vale la pena. No más
dd
en el medio de un documento, y faltan todas las pequeñas cosas útiles.Quizás un poco fuera de tema, pero pensé que valía la pena señalarlo.
fuente
Dependiendo del idioma que esté programando, quédese con el ide u obtenga el ide que ofrezca la mayor cantidad de refactorizaciones que pueda encontrar, obtenga un compartimiento para Visual Studio si está haciendo C #, Intellij para Java o Visual Assistance para Visual Studio, maximiza las refactorizaciones en eclipse o netbeans.
Deberíamos pasar de manipular texto a manipular código, las herramientas de refactorización le brindan esa capacidad. Si vim te ofrece todas las funciones, por mi parte, ya no quiero tratar con un editor de texto
fuente
Seleccionar columna de tabla
Esto no parece estar en los IDE populares, y si lo es, lo mantienen bien oculto. Esto es realmente útil para probar expresiones regulares contra una columna en el archivo de datos CSV.
fuente
La mayoría de los IDE no le permiten dividir la pantalla. Me encanta esa característica en VIM.
fuente
<C-w>