La guía para principiantes para empezar a usar Vim
Vim Keyboard Shortcuts Cheatsheet
5 Consejos y trucos de Vim para usuarios experimentados
3 Consejos y trucos útiles del editor VIM para usuarios avanzados
El editor de Vim ofrece tantas funciones que es muy difícil aprenderlas todas. Aunque, por supuesto, pasar más y más tiempo en el editor de línea de comandos siempre ayuda, no se puede negar el hecho de que se aprenden cosas nuevas y productivas más rápido mientras se interactúa con otros usuarios de Vim. Aquí hay algunos consejos y trucos de Vim para ti.
Nota – Para crear los ejemplos aquí, usé Vim versión 7.4.52.
1. Trabajar con varios archivos
Si eres un desarrollador de software o alguien que usa Vim como su editor principal, es muy probable que tengas que trabajar con múltiples archivos simultáneamente. A continuación encontrará algunos consejos útiles que puede utilizar mientras trabaja con varios archivos.
En lugar de abrir diferentes archivos en diferentes pestañas del shell, puede abrir varios archivos en una sola pestaña pasando sus nombres de archivo como argumentos al comando vim. Por ejemplo:
vim file1 file2 file3
El primer archivo (archivo1 en el ejemplo) será el archivo actual y se leerá en el búfer.
Una vez dentro del editor, utilice el comando :next o :n para pasar al siguiente archivo, y el comando :prev o :N para volver al anterior. Para cambiar directamente al primer o último archivo, utilice los comandos :bf y :bl, respectivamente. Para abrir y comenzar a editar otro archivo, use el comando :e con el nombre del archivo como argumento (use la ruta completa en caso de que el archivo no esté presente en el directorio actual).
En cualquier momento si se requiere listar los archivos abiertos actualmente, use el comando :ls. Vea la captura de pantalla que se muestra a continuación.
Tenga en cuenta que «%a» representa el archivo en la ventana activa actual, mientras que «#» representa el archivo en la ventana activa anterior.
2. Ahorre tiempo con la función de autocompletar
¿Quiere ahorrar tiempo y mejorar la precisión? Use abreviaturas. Son útiles cuando se escriben palabras largas y complejas que se repiten con frecuencia en todo el archivo. El comando Vim para abreviaturas es ab. Por ejemplo, después de ejecutar el comando
:ab tan pronto como sea posible
cada vez que aparezca la palabra «tan pronto como sea posible» se sustituirá automáticamente por «tan pronto como sea posible», a medida que escriba.
Del mismo modo, también puede utilizar abreviaturas para corregir los errores de escritura más comunes. Por ejemplo, el comando
:ab recieve receive
>
corregirá automáticamente el error ortográfico mientras escribe. Si desea evitar que la expansión/corrección ocurra en una ocurrencia en particular, simplemente escriba «Ctrl + V» después del último carácter de la palabra y luego presione la tecla de la barra espaciadora.
Si desea guardar la abreviatura que ha creado para que esté disponible la próxima vez que utilice el editor Vim, añada el comando completo ab (sin los dos puntos iniciales) al archivo «/etc/vim/vimrc». Para eliminar una abreviatura en particular, puede utilizar el comando una. Por ejemplo, :una asap.
3. Dividir ventanas para copiar/pegar fácilmente
Hay ocasiones en las que se desea copiar un fragmento de código o una porción de texto de un archivo a otro. Aunque el proceso es fácil cuando se trabaja con editores de GUI, se vuelve un poco tedioso y consume mucho tiempo cuando se trabaja con un editor de línea de comandos. Afortunadamente, Vim proporciona una manera de minimizar el tiempo y el esfuerzo requerido para hacer esto.
Abra uno de los dos archivos y luego divida la ventana Vim para abrir el otro archivo. Esto se puede hacer usando el comando split con el nombre del archivo como argumento. Por ejemplo,
:dividir test.c
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
dividirá la ventana y abrirá «test.c».
Observe que el comando divide la ventana Vim horizontalmente. En caso de que desee dividir la ventana verticalmente, puede hacerlo utilizando el comando vsplit. Una vez abiertos ambos archivos, copie el material de un archivo, pulse «Ctrl + w» para cambiar el control a otro archivo y pegue.
4. Guardar un archivo que ha editado sin los permisos necesarios
Hay ocasiones en las que te das cuenta de que un archivo es de sólo lectura sólo después de hacer un montón de cambios en él.
Aunque cerrar el archivo y volver a abrirlo con los permisos necesarios es una salida, es una pérdida de tiempo si ya ha hecho muchos cambios, ya que todos ellos se perderán durante el proceso. Vim le proporciona una manera de manejar esta situación permitiéndole cambiar los permisos de archivo desde dentro del editor antes de que usted lo guarde. El comando para esto es:
:w !sudo tee %
>
El comando le pedirá la contraseña, tal y como lo hace sudo en la línea de comandos, y luego guardará los cambios.
Un consejo relacionado : Para acceder rápidamente a la línea de comandos mientras edita un archivo en Vim, ejecute el comando :sh desde el editor. Esto lo colocará en un shell interactivo. Una vez que haya terminado, ejecute el comando exit para volver rápidamente a su sesión de Vim.
5. Conservar la sangría durante copiar/pegar
La mayoría de los programadores experimentados trabajan en Vim con la indentación automática activada. Aunque es una práctica que ahorra tiempo, crea un problema al pegar un código ya sangrado. Por ejemplo, esto es lo que ocurrió cuando pegué un código ya sangrado en un archivo abierto en el editor de Vim con la sangría automática activada.
La solución a este problema es la opción pastetoggle. Añadir la línea
set pastetoggle=
a su archivo vimrc, y pulse F2 en modo de inserción justo antes de pegar el código. Esto debería conservar la sangría original. Tenga en cuenta que puede sustituir F2 por cualquier otra tecla si ya está asignada a alguna otra función.
Conclusión
La única forma de mejorar aún más tus habilidades como editor de Vim es utilizando el editor de línea de comandos para tu trabajo diario. Simplemente anota las acciones que toman tiempo y luego trata de averiguar si hay un comando del editor que haga las acciones más rápidamente.