8 consejos y trucos de Vim que te convertirán en un usuario profesional

Breve : En este artículo, te mostraré algunos de mis favoritos. trucos vim con ejemplos prácticos. Si no usa Vim, es posible que estos consejos no le den Razones para usar Vim pero si ya lo usa, definitivamente se convertirá en un mejor usuario de Vim.

Incluso si recientemente comencé a usar Átomo cada vez más, apenas puedo pasar un día sin usar Empuje . No porque me vea obligado. Pero porque me siento tan cómodo.

Sí, cómodo. Una palabra muy extraña cuando se habla de Vi o cualquiera de sus clones, ¿no? Y estoy de acuerdo, ciertamente no es el editor de texto más intuitivo.

Pero con un poco de práctica y entrenando un poco tu memoria, puedes realizar tareas de edición aparentemente complejas con solo unas pocas pulsaciones de teclas. Algo que realmente nunca he encontrado con ningún otro editor de texto de línea de comandos para Linux.

Pero, en lugar de escribir una introducción más a vi, elegí hoy dejarte tocar el poder real detrás de Vi(m) al presentarte algunos trucos que realmente uso, y que extraño en la mayoría, si no en todos, los demás editores. No te daré la explicación completa de todos esos trucos, pero te animo encarecidamente a que pruebes y experimentes con ellos hasta que entiendas cómo funcionan.

Si te gustó Vim y quieres dominarlo por completo, también puedes inscribirte en el curso de Vim en línea proporcionado por Linux Training Academy.

8 trucos de Vim para sacarle más partido

Permítanme repetir: les recomiendo encarecidamente que prueben esos example por tí mismo. Desafortunadamente, WordPress no necesariamente hace un buen trabajo para preservar el contenido exacto de mis ejemplos y comandos, especialmente con respecto a líneas vacías o comillas. Entonces, para su comodidad, puede descargar las muestras utilizadas aquí desde el siguiente enlace:

Descarga los ejemplos de Vim para practicar

Cada example viene con el texto original (.orig) y un script Bash (.sh) que invoca a Vim con el comando ilustrado en este artículo.

1. Cambio de mayúsculas en Vim

¿Soy el único que usa esa función? ¿O es porque estoy condenado a trabajar con personas que creen que ESCRIBIR TODO EN MAYÚSCULAS ES GENIAL?

De todos modos, al programar, al agregar un aviso de copyright, o incluso después de copiar y pegar, no es raro tener que cambiar las mayúsculas del texto. En ese sentido, Vim está mucho más evolucionado que el Vi original. Y bendigo cada día a Bram Moolenaar por su gran trabajo:

Texto original
derechos de autor (c) por

El uso de las obras está permitido siempre que este instrumento se conserve con las obras, de modo que cualquier entidad que utilice las obras sea notificada de este instrumento.
Descargo de responsabilidad: las obras son sin garantía.

Comandos
~ Caso del interruptor
:$norma gUU Convierta la última línea a mayúsculas {no en Vi}
texto modificado
C derechos de autor (c) por

El uso de las obras está permitido siempre que este instrumento se conserve con las obras, de modo que cualquier entidad que utilice las obras sea notificada de este instrumento.
DESCARGO DE RESPONSABILIDAD: LAS OBRAS SON SIN GARANTÍA.

2. Consejos de búsqueda y reemplazo de Vim

Este lo uso todos los días. ¿Por qué esto todavía no está presente en todos los editores de texto? Por supuesto, la mayoría de los editores tienen algún tipo de función de reemplazo de búsqueda. Pero, ¿cuántos tienen realmente el poder de las expresiones regulares y los patrones de sustitución? Por supuesto, esto es más complejo de dominar que las sustituciones de cadenas básicas. Pero no podría vivir sin esa función. En ese punto, a veces me veo copiando/pegando desde algunos editores de GUI en una terminal que ejecuta sed y viceversa. Pero Vi tiene eso incrustado desde hace 40 años más o menos…

Texto original
¿Tiene un niño la oportunidad de pintar una cerca de negro todos los días? Eso puso la cosa bajo una nueva luz. Ben Rogers dejó de mordisquear su manzana. Tom pasó el pincel delicadamente de un lado a otro, dio un paso atrás para notar el efecto, agregó un toque aquí y allá, volvió a criticar el efecto, Ben observaba cada movimiento y se interesaba cada vez más, cada vez más absorto.
Comandos
:s/negro/blanco/ Reemplace la primera aparición de la cadena ‘negro’ por ‘blanco’
:s/Ben( Rogers)@!/Ben Rogers/g Reemplace cada ocurrencia de la cadena ‘Ben’ por ‘Ben Rogers’ excepto cuando ‘Rogers’ ya estaba presente
:s/.*/

r&r

/

Envuelva la línea entre

y

:-1s/–/—/g Reemplace cada ocurrencia de la cadena ‘–’ por ‘—’ en la linea anterior
texto modificado

¿Un niño tiene la oportunidad de pintar blanco una valla todos los días? Eso puso la cosa bajo una nueva luz. Ben Rogers dejó de mordisquear su manzana. Tom barrió su cepillo delicadamente de un lado a otro dio un paso atrás para notar el efecto agregó un toque aquí y allá volvió a criticar el efecto ben rogers observando cada movimiento y cada vez más interesado, más y más absorto.

Esas vallas me recuerdan a ViM…

3. Mover las cosas en poco tiempo

Sí, copiar y pegar y arrastrar y soltar son excelentes herramientas. Pero a veces es demasiado aburrido desplazarse por un documento completo para encontrar dónde pegar el texto y luego desplazarse en la dirección opuesta para devolver el cursor a su ubicación inicial.

Texto original
Ventajas:
* Rápido
* Poder total
* De confianza
* No es fácil de usarContras:
* Portátil
* Adictivo
Comandos
/Energía/ Vaya a la primera línea que contiene la cadena ‘Power’
ddp Intercambiar la línea actual con la siguiente
:/fácil de usar/m$ Mueva la siguiente línea que contiene la cadena ‘fácil de usar’ al final del archivo
gramo; Llevar el cursor de vuelta a la posición anterior
:/Contras/+1m-2 Mover dos líneas hacia arriba en la línea que sigue a ‘Contras’
texto modificado
Ventajas:
* Rápido
* De confianza
* Poder total
* Portátil Contras:
* Adictivo
* No es fácil de usar

4. Aplicar comandos en un rango de direcciones

Los editores de GUI pueden permitirle aplicar algunos comandos en todo el archivo, o solo en la selección actual. A veces, tenemos más opciones, como antes o después del cursor. Pero Vi(m) permite una descripción mucho más expresiva del rango en el que se debe aplicar un comando dado:

Muchos escritores han optado por escribir bajo un seudónimo.


Texto original

Seudónimo Nombre real
Mark Twain Samuel Clemens
Lewis Carroll Charles Dodgson
Richard Bachman Stephen King
Comandos
:/ /,/ /g/^$/d Eliminar líneas vacías entre líneas que contienen

y
:/^$/;/^$/-1m1 Mueva el texto entre las siguientes dos líneas vacías después de la línea 1 (observe el uso de un punto y coma aquí)
:2,$-1> Aumentar la sangría del texto entre la línea 2 y la penúltima línea
texto modificado

Muchos escritores han optado por escribir bajo un seudónimo.




Seudónimo Nombre real
Mark Twain Samuel Clemens
Lewis Carroll Charles Dodgson
Richard Bachman Stephen King

5. Ejemplos de comandos de tuberías de Vim

Este es absolutamente un meta-truco en el espíritu directo de la filosofía Unix. Vi le permite procesar parte de su búfer a través de un comando externo. Esto es excelente cuando necesita cosas que no se pueden hacer directamente en Vi, o para cosas que no se pueden hacer fácilmente en Vi. Mi caso de uso favorito para esta función es ordenar datos, pero tiene un poder prácticamente ilimitado:

Texto original
tee >(echo $(wc -l) datos más recientes) << EOT
agosto de 2016 2,11%
septiembre de 2016 2,23%
octubre de 2016 2,18 %
noviembre de 2016 2,31%
Dic, 2016 2.21%
ene, 2017 2.27%
marzo de 2016 1,78%
abril de 2016 1,65 %
Mayo, 2016 1.79%
junio de 2016 2,02%
julio de 2016 2,33%
Cuota de mercado de EOTLinux en escritorio
fuente: https://www.netmarketshare.com
Comandos
:2,/^EOT/-1!ordenar -k2n -k1M Ordenar datos por año y mes
:$r! fecha “+Datos obtenidos el %c” Agregue la salida del date comando al final del archivo
:1,/^EOT/!bash Ejecute el script incrustado y reemplácelo por su resultado.
texto modificado
marzo de 2016 1,78%
abril de 2016 1,65 %
Mayo, 2016 1.79%
junio de 2016 2,02%
julio de 2016 2,33%

agosto de 2016 2,11%
septiembre de 2016 2,23%
octubre de 2016 2,18 %
noviembre de 2016 2,31%
Dic, 2016 2.21%
ene, 2017 2.27%
11 datos más recientes Cuota de mercado de Linux en el escritorio
fuente: https://www.netmarketshare.com
Datos obtenidos el jue 09 feb 2017 23:07:34 CET

6. Escribir menos

Al escribir documentación formal, siempre hay algunos términos inusualmente largos y complicados que debe repetir. Puede ser una marca o nombre de producto. Alguna ubicación. Un aviso de derechos de autor. Y así. Obviamente, cada instancia de esas palabras grandes debe escribirse correctamente y usar exactamente las mismas mayúsculas y puntuación. La función de abreviatura de Vim es imprescindible allí.

Comandos
:ab manzana apple computer, inc. Introducir una nueva abreviatura
I Cambiar al modo de inserción
Apple fue fundada en 1977.
El logo de la manzana es una manzana^V.
Texto escrito
(^V significa control-V)
Resultado
computadora de apple, inc. fue fundada en 1977.
los computadora de apple, inc. el logo es una manzana.

7. Obtener ayuda en Vim

Ok, hay Internet. Pero las personas que todavía usan al hombre como yo apreciarán la ayuda en línea. Puede obtener ayuda por tema. O por mandato. Siempre útil cuando no recuerda la sintaxis exacta o las opciones para Comandos Vim — o si no está seguro de que el comando que necesita es un comando normal o un comando ex:.

¡Prueba esto!
:ayuda ayuda
:Ayudame
:Ayudame

8. Scripting en Vim

Cuando usa Vi(m), básicamente está usando una interfaz visual para otro editor subyacente llamado ex. ¿Quizás notó cuántos comandos en los ejemplos anteriores comienzan con dos puntos (:)? Eso es porque esos son comandos ex. Y esta es otra ventaja más de Vi(m) sobre tantos editores de texto: no solo puede usarlo de forma interactiva, sino que también puede escribirlo.

¿Por qué alguien querría hacer eso? Hablando por mí mismo, creo que es una excelente manera de automatizar el procesamiento de texto. Al lado, se puede ver un típico example directamente desde mi disco duro.

Probablemente haya algunos comandos misteriosos en ese ex script, pero puedo decirle que esto eliminará cualquier encabezado (eventualmente presente) de un script y lo reemplazará por otro leído del archivo NEW.HEADER, agregando un # antes de cada línea agregada . No hay duda de que podría haberlo hecho usando otras herramientas que no sean ex. De hecho, ese fue incluso el tema de uno de nuestros Bash Challenge anteriores. Pero ex es definitivamente una opción.

que misterioso…
ex some.script << EOT
0pu_
1,/^[^#]/-1d
0r NUEVO.ENCABEZADO
1,.s/^/# /
wq
fin de semana

Como dije inicialmente, este artículo no era en absoluto un tutorial, ni una introducción a Vi(m). Solo algunos vinieron consejos para mostrarle por qué a alguien todavía le puede gustar ese editor a pesar de todos los demás editores de código modernos para Linux disponibles en la actualidad. En cierto sentido, compartí contigo algunos de mis hechizos favoritos. Pero en la gran tradición de la hechicería, no desvelé cómo funcionan exactamente.

Entonces, queridos aprendices, no duden en usar la sección de comentarios a continuación para compartir sus propios encantamientos o contrahechizos, o si se atreven, ¡para explicar esos trucos!


Related Posts