No importa si es un administrador de sistemas o un desarrollador de software, si trabaja en la terminal de Linux, se enfrentará a la situación en la que necesita editar archivos de texto en la terminal.
Cuando está restringido a la terminal, debe usar uno de los editores de línea de comandos como Vim. La mayoría de nosotros estamos acostumbrados a los editores GUI y esto causa un problema porque usar un editor de línea de comandos no es lo mismo que usar un editor de texto gráfico como Atom.
Hay varios editores de texto de líneas de comando disponibles y puede usar cualquiera de ellos. Vim es uno de los editores de texto de línea de comandos más populares y lo encontrará instalado en cualquier distribución estándar de Linux. Es por eso que aprender los conceptos básicos de Vim te ayudará mucho.
Ahora, esta no es una guía completa para convertirlo en un experto en Vim. Es una guía completa de Vim destinada a brindarle lo suficiente para sobrevivir a Vim en la terminal de Linux.
Espero que hayas instalado Vim en Ubuntu o en cualquier distribución de Linux que estés usando.
Si ha trabajado con Vim anteriormente, tal vez solo quiera refrescar sus recuerdos mirando esta hoja de trucos de Vim:
Comando Vim | Descripción |
yo | Ingrese al modo de inserción |
Esc | Entrar en modo comando |
x o Supr | Eliminar un personaje |
X | Eliminar carácter es el modo de retroceso |
u | Deshacer cambios |
Ctrl + r | Rehacer cambios |
aa | Copiar una línea |
dd | Eliminar una línea |
p | Pegar el contenido del búfer |
/ | Busque y luego recorra las coincidencias con n y N |
[[ o gg | Mover al principio de un archivo |
]] o G | Mover al final de un archivo |
:%s/foo/bar/gci | Buscar y reemplazar todas las apariciones con confirmación |
Esc + :w | Guardar cambios |
Esc + :wq o Esc + ZZ | Guardar y salir de Vim |
Esc + :q! | Forzar la salida de Vim descartando todos los cambios |
También puede descargar los comandos anteriores como PDF. Descárguelo, imprímalo y guárdelo en su escritorio para una referencia rápida.
Comandos básicos de Vim Cheatsheet Linux Handbookvim-commands-cheatsheet-linux-handbook.pdf86 KB
No se preocupe, también voy a explicar estos comandos básicos de Vim en detalle.
Comprender los modos Vim
Antes de comenzar, conozcamos los modos de Vim. Vim tiene tres modos:
- Modo de comando:cuando inicia Vim, se le coloca en el modo de comando. En este modo, puede moverse por la pantalla, eliminar texto y copiar texto.
- Modo de inserción:no puede escribir texto en el modo de comando. Para escribir texto (o digamos insertar texto) en un archivo, hay un modo de inserción dedicado. Cuando desee escribir algo en un archivo, debe ingresar al modo de inserción.
- Modo visual:algo así como el modo de comando, pero aquí puede usar las teclas de flecha para seleccionar texto entre líneas (en lugar de trabajar directamente en palabras y líneas según la posición del cursor).
Una vez que conozca los modos de Vim, veamos algunos comandos básicos de Vim para varios propósitos.
Acceso al modo de inserción en Vim
Recuerde siempre, i representa el modo de inserción. Usted presiona la tecla 'i' para ingresar al modo de inserción .
Cuando ingrese al modo de inserción, verá — INSERTAR — en la parte inferior de la pantalla del editor/terminal. Esto indica que está en modo de inserción.
Pero no es la única forma de ingresar al modo de inserción. Hay varios otros comandos para ingresar al modo de inserción en Vim. La posición del cursor es importante al ingresar al modo de inserción.
- i:aparecerá un nuevo texto antes del cursor
- a:aparecerá un nuevo texto después del cursor
- I:el nuevo texto aparecerá al principio de la línea actual
- A:el siguiente texto aparecerá al final de la línea actual
- o:se crea una nueva línea después de la línea actual
- O:se crea una nueva línea antes de la línea actual
Volviendo al modo de comando en Vim
Empiezas en el modo de comando, vas al modo de inserción. Si desea volver al modo de comando, presione la tecla Esc (escape) .
Cuando haya ingresado su texto, le aconsejo presionar la tecla Esc para ingresar al modo de comando. De esta manera, no ingresará ningún texto nuevo sin saberlo, involuntariamente. Consejo:si no puede recordar nada más, solo recuerde presionar 'i' para el modo de inserción y la tecla Esc para el modo de comando. Esto debería ser suficiente.
Moverse en Vim
Cuando está en Vim, no puede usar el mouse para hacer clic en un punto de la pantalla como los editores de texto o código normales. Es por eso que necesita conocer los comandos de movimiento a una determinada línea, palabra o posición en Vim.
Los puristas de Vi/Vim sugerirán usar las teclas h, j, k y l para moverse hacia arriba, izquierda, derecha y abajo respectivamente cuando esté en el modo de comando. Si bien esto es aplicable a los editores Vi y Vim, no prefiero usar estas extrañas combinaciones de teclas.
Curiosidad:cuando se desarrolló por primera vez el editor Vi, la mayoría de los teclados no tenían teclas de flecha. Esta es la razón por la que se usaron las teclas h,j,k,l para el movimiento.
Uso las teclas de flecha para moverme en Vim. Funciona bien incluso cuando está en modo de inserción en Vim. Esa es la forma estándar de moverse a la que está acostumbrada la mayoría de las nuevas generaciones.
Si es nuevo en Linux o en Vim, puede optar por las teclas de flecha. Ningún daño hecho.
Sin embargo, si desea ser un poco más competente con Vim, es posible que desee memorizar algunos atajos de Vim para moverse fácilmente por la pantalla. Algunos de mis comandos de movimiento favoritos de Vim son:
- H:muévase a la parte superior de la pantalla. Tenga en cuenta que no siempre significa pasar a la primera línea del archivo. Es solo para moverse a la parte superior de la pantalla visible.
- L:muévase a la parte inferior de la pantalla. Tenga en cuenta que no siempre significa moverse a la última línea del archivo. Es solo para moverse a la parte inferior de la pantalla visible.
- M:muévase al centro de la pantalla.
- [[ – Mover a la primera línea del archivo. También puede utilizar ue gg aquí.
- ]] – Ir a la última línea del archivo. También puede usar G aquí.
- nG:pasar al número de línea n. Tenga en cuenta que no verá nada en la pantalla mientras escribe los números de línea.
Sugerencia:puede mostrar números de línea en Vim ingresando al modo de comando y escribiendo :establecer número
Como puede ver, con estos comandos de movimiento adicionales, le será más fácil moverse en un archivo de texto grande. Puede aprender más comandos de movimiento como { y } para avanzar y retroceder párrafos, w para moverse palabra por palabra, etc.
También puede usar 'modificadores repetidores' como nG que acaba de ver con la mayoría de los comandos en Vim. Por ejemplo, si usa 5w, moverá 5 palabras. Si usa 6H, se moverá a la sexta línea desde la parte superior de la pantalla.
Los modificadores repetidores también funcionan con 'i' y aquí es donde muchas personas cometen errores. Si accidentalmente presionó un número como 7 antes de presionar 'i' para ingresar al modo de inserción, cualquier texto que escriba se agregará 7 veces. No lo verá en la pantalla inmediatamente hasta que comience a guardar el documento.
Entonces, ¿qué hacer cuando cometes un error tonto como este? Deshacerlo.
Deshacer sus cambios en Vim
Si cometió un error en Vim, no tiene que vivir con eso para siempre. También he visto personas que abandonan el editor sin guardar en esos casos, lo cual es algo ridículo.
Vim le permite deshacer y rehacer sus cambios. También puede rehacer sus cambios. Todo es aplicable en la misma sesión, por supuesto. Una vez que haya guardado los cambios, no podrá deshacerlos.
Para deshacer un cambio, vaya al modo de comando y presione la tecla 'u'. Puede presionarlo varias veces para múltiples acciones de deshacer.
Si desea rehacer un cambio, presione la combinación de teclas Ctrl+r en el modo de comando. Puede presionarlo varias veces para múltiples acciones de rehacer.
Eliminar en Vim
Además de deshacer los cambios, es posible que también desee eliminar parte del texto del archivo. En Vim, siempre puede usar la tecla Supr para eliminar un carácter, pero hay algunas combinaciones de teclas para manejar mejor la eliminación en Vim.
- x:elimina el carácter en la posición actual del cursor como si fuera una tecla de eliminación
- X:elimina el carácter antes de la posición actual del cursor como una tecla de retroceso. Tenga en cuenta que la tecla de retroceso en sí misma no funciona en Vim.
- dw:eliminar palabra. En realidad, borra desde la posición actual del cursor hasta el final de la palabra actual más el espacio en blanco que sigue.
- dd:elimina la línea actual.
- d$:elimina desde la posición actual del cursor hasta el final de la línea.
- dG:elimina desde la posición actual del cursor hasta el final del archivo.
Nota:No hay comandos de corte en Vim porque cuando elimina algo, el texto eliminado se coloca en el búfer. En otras palabras, los comandos de eliminación son los comandos de corte.
Copiar-Pegar en Vim
Quizás se pregunte cómo copiar y pegar en Vim. Esta es una preocupación legítima porque no siempre escribirás los textos.
Hay dos tipos de copiar y pegar en Vim. Uno que trata con el búfer y otro que trata con el texto 'externo'.
Cuando está en el modo de comando, puede usar los accesos directos de su terminal de Linux para copiar el texto o las siguientes combinaciones de teclas para copiar texto:
- yw:copiar palabra. En realidad, copia desde la posición actual del cursor hasta el final de la palabra actual más el espacio en blanco que le sigue.
- yy:copia la línea actual.
- y$:copia desde la posición actual del cursor hasta el final de la línea.
- yG:copia desde la posición actual del cursor hasta el final del archivo.
Suponga que usó uno de los comandos de eliminación discutidos anteriormente. El texto eliminado se coloca en el búfer. Puede pegar este texto desde el búfer usando estos dos comandos de pegado:
- p:pega el contenido del búfer antes de la posición del cursor
- P:pega el contenido del búfer después de la posición del cursor
Tenga en cuenta que si ha eliminado una línea completa, el contenido se colocará antes o después de la línea actual con los comandos de pegado mencionados anteriormente.
Los comandos de pegado solo funcionan con el búfer de Vim. ¿Qué pasa con el texto que copiaste de algún otro archivo? En esos casos, puede usar las combinaciones de teclas estándar de copiar y pegar de su terminal de Linux.
En Ubuntu y en la terminal predeterminada de muchas otras distribuciones de Linux, Ctrl+Shift+C se usa para copiar y Ctrl+Shift+V se usa para pegar. En algunos otros terminales, al seleccionar un texto se copia y se puede pegar haciendo clic derecho.
Cualquiera que sea la forma de copiar y pegar en su terminal Linux, también puede usarlo en Vim. Solo asegúrese de estar en el modo de inserción para este tipo de copia y pegado.
Buscando texto en Vim
Encontrar un texto en particular es una función importante de un editor de texto. Puede buscar texto en el archivo en Vim usando '/'.
En el modo de comando, use / y luego escriba su texto de búsqueda y presione enter. Verás lo que estés escribiendo en la parte inferior izquierda de la pantalla.
Hará una búsqueda hacia adelante del término buscado desde la posición del cursor. También puede usar '?' y luego escribir su término de búsqueda y presionar enter para realizar una búsqueda hacia atrás. Tenga en cuenta que la búsqueda distingue entre mayúsculas y minúsculas.
Si hay más de una coincidencia para su texto de búsqueda, puede saltar a la siguiente posición presionando la tecla n. Si desea volver a la coincidencia anterior, presione N. Básicamente, con n y N puede recorrer todas las coincidencias. Sugerencia:puede usar la opción \c para ejecutar una búsqueda que no distingue entre mayúsculas y minúsculas en Vim. Ejemplo:/\cMi_Búsqueda
Buscar y reemplazar en Vim
Vim proporciona un comando sustituto (:s) para buscar y reemplazar texto. Se basa en gran medida en expresiones regulares (regex) para buscar y reemplazar.
Puede usarlo de la siguiente manera:
:%s/foo/bar/g
El comando anterior reemplazará todos los 'foo' con 'bar' en todo el archivo. La 'g' al final es responsable de extender la función de búsqueda y reemplazo en todos los partidos. De lo contrario, solo se reemplaza la primera coincidencia.
:s/foo/bar/g
El comando ':s' hará exactamente la misma función que la anterior, pero solo en la línea actual en lugar de en todo el archivo.
De forma predeterminada, la búsqueda distingue entre mayúsculas y minúsculas. Para que no distinga entre mayúsculas y minúsculas, puede usar la bandera 'i' junto con g.
:%s/foo/bar/gci
Agregué una bandera 'c' adicional aquí. En realidad, es posible que no se sienta cómodo con la idea de que todos los textos coincidentes se reemplacen en todo el documento en cuestión de segundos. Aquí es donde la bandera 'c' ayuda mucho. Con este indicador de confirmación, Vim le pedirá que confirme si desea realizar un reemplazo en cada coincidencia.
En el modo de confirmación, se le presentará la siguiente opción:reemplazar con UU (y/n/a/q/l/^E/^Y)?
Permítanme explicar las opciones aquí:
- y – SÍ, reemplaza esta coincidencia
- n:NO, no reemplace esta coincidencia y pase a la siguiente
- a – Reemplaza TODAS las coincidencias
- q – SALIR sin reemplazar ninguna coincidencia
- l – Reemplazar esta coincidencia y salir como si fuera la ÚLTIMA coincidencia
- ^E:desplaza la pantalla hacia arriba
- ^Y:desplaza la pantalla hacia abajo
Sugerencia:si no puede recordar todo lo demás, solo recuerde:%s/foo/bar/gci intentará reemplazar todas las coincidencias en el archivo completo con su confirmación.
Guardar y salir de Vim
Acaba de aprender los conceptos básicos de los comandos de Vim. Es hora de guardar su trabajo y salir de Vim. Para guardar o salir de Vim, primero debe ingresar al modo de comando presionando la tecla Esc. Y luego puede usar las siguientes opciones:
- :w – Guardar los cambios pero no salir
- :wq – Guardar y salir
- :q – Simplemente salga (si tiene cambios sin guardar, verá esta advertencia:E37:No se ha escrito desde el último cambio (agregue ! para anular))
- :q! – Forzar salida (se descartarán los cambios no guardados)
Descargue la hoja de trucos de Vim Command en formato PDF
Puedo entender que si eres nuevo en Vim, recordar lo que acabas de aprender puede ser difícil. Es por eso que creé una lista de comandos vim básicos y su explicación rápida.
Puede descargar esta hoja de trucos de Vim en formato PDF, imprimirla y guardarla en su escritorio para una referencia rápida.
Descargar la hoja de trucos de los comandos básicos de Vim
Ir más allá con Vim
Bueno, acabas de aprender todos los conceptos básicos de Vim que necesitas para sobrevivir a este editor de texto terriblemente increíble. Con todo este conocimiento, puede leer texto, buscar texto y realizar ediciones básicas en Vim. Esto será suficiente para evitarle el pánico tan pronto como se le ocurra la idea de utilizar un editor de texto de terminal como Vim.
Debe marcar esta página para actualizar lo que aprendió en Vim aquí. También puede usar el comando vimtutor. La mayoría de las distribuciones de Linux tienen instalado el comando vimtutor. Si tiene ganas de mejorar su conocimiento de Vim o practicar los comandos de Vim, simplemente ejecute vimtutor en una terminal.
Si desea llevar sus habilidades de Vim al siguiente nivel, le recomiendo el recurso Mastering Vim Quickly. Vale la pena la inversión.
Espero que esta guía te haya ayudado a comenzar con Vim. Si tiene preguntas o sugerencias, deje un comentario.