# Comandos Internos de Uso en Vim en Linux: Guía Básica y Avanzada

- Link: https://binariocero.com/linux/comandos-internos-de-uso-en-vim-en-linux-guia-basica-y-avanzada
- Published: 2024-11-05T19:59:01+01:00
- Author: Binario 0

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Vim (Vi IMproved) es un editor de texto poderoso y versátil que se encuentra disponible
en casi todas las distribuciones de Linux. Este editor es especialmente apreciado
por desarrolladores, administradores de sistemas y cualquier usuario que busque 
un editor eficiente para trabajar en la terminal. Aunque puede parecer intimidante
al principio, conocer los comandos internos de Vim permite aprovechar al máximo 
su funcionalidad y productividad.

## Modos de Operación en Vim

Antes de aprender los comandos, es importante entender los modos de Vim:

 1. **Modo Normal (Normal Mode)**: Es el modo predeterminado cuando se abre Vim. En
    este modo, los comandos de edición son efectivos.
 2. **Modo de Inserción (Insert Mode)**: Se activa para escribir o editar texto. Presiona`
    i`, `a`, o `o` desde el Modo Normal para ingresar a este modo.
 3. **Modo de Comando (Command Mode)**: Es usado para realizar acciones avanzadas, 
    como guardar y salir. Entra en este modo desde el Modo Normal presionando `:`.
 4. **Modo Visual (Visual Mode)**: Permite seleccionar bloques de texto para copiarlos,
    cortarlos, o aplicarles comandos. Se activa desde el Modo Normal con `v`, `V` o`
    Ctrl+v` para selección visual en bloque.

Para regresar al Modo Normal desde cualquier otro modo, simplemente presiona `Esc`.

## Comandos Básicos en Vim

### Navegación

En el Modo Normal, puedes navegar sin usar el mouse:

 * `h`, `j`, `k`, `l` Mover el cursor a la izquierda, abajo, arriba y derecha, respectivamente.
 * `0` Mover el cursor al inicio de la línea actual.
 * `$` Mover el cursor al final de la línea actual.
 * `w` Mover el cursor al inicio de la siguiente palabra.
 * `b` Mover el cursor al inicio de la palabra anterior.
 * `G` Mover el cursor al final del documento.
 * `gg` Mover el cursor al inicio del documento.

### Insertar y Editar Texto

 * `i` Insertar texto antes del cursor.
 * `a` Insertar texto después del cursor.
 * `o` Insertar una nueva línea debajo del cursor.
 * `O` Insertar una nueva línea encima del cursor.
 * `r` Reemplazar el carácter bajo el cursor.
 * `u` Deshacer la última acción.
 * `Ctrl+r` Rehacer la acción deshecha.

### Guardar y Salir

 * `:w` Guardar el archivo.
 * `:q` Salir de Vim.
 * `:wq` o `ZZ` Guardar y salir.
 * `:q!` Salir sin guardar.

## Comandos de Edición Intermedia

### Manipulación de Texto

 * `dd` Eliminar (cortar) la línea actual.
 * `yy` Copiar (yank) la línea actual.
 * `p` Pegar el contenido copiado o cortado después del cursor.
 * `x` Eliminar el carácter bajo el cursor.
 * `X` Eliminar el carácter a la izquierda del cursor.
 * `:s/viejo/nuevo` Reemplazar la primera ocurrencia de "viejo" en la línea actual
   por "nuevo".
 * `:s/viejo/nuevo/g` Reemplazar todas las ocurrencias en la línea actual.
 * `:%s/viejo/nuevo/g` Reemplazar todas las ocurrencias en el documento.

### Selección y Manipulación Visual

 * `v` Entrar en el Modo Visual para seleccionar caracteres.
 * `V` Entrar en el Modo Visual de Línea para seleccionar líneas completas.
 * `Ctrl+v` Entrar en el Modo Visual en Bloque para seleccionar un bloque rectangular
   de texto.

Una vez realizada la selección en cualquier modo visual, puedes aplicar los siguientes
comandos:

 * `d` Eliminar la selección.
 * `y` Copiar la selección.
 * `>`, `<` Aumentar o disminuir el sangrado de la selección.
 * `=` Indentar el código seleccionado automáticamente.

## Comandos Avanzados en Vim

### Trabajo con Múltiples Archivos y Ventanas

 * `:e nombre_archivo`: Abrir otro archivo en la misma ventana.
 * `:sp nombre_archivo`: Dividir la ventana horizontalmente y abrir otro archivo.
 * `:vsp nombre_archivo`: Dividir la ventana verticalmente y abrir otro archivo.
 * `Ctrl+w` Combina con otros comandos para manejar ventanas (por ejemplo, `Ctrl
   +w w` para cambiar de ventana o `Ctrl+w q` para cerrar una ventana).

### Macros

Las macros son útiles para realizar tareas repetitivas en Vim:

 * `qa` Iniciar la grabación de una macro en el registro "a".
 * [Comandos] Ejecutar los comandos deseados para la macro.
 * `q` Finalizar la grabación de la macro.
 * `@a` Ejecutar la macro guardada en el registro "a".
 * `@@` Repetir la última macro ejecutada.

### Búsqueda y Sustitución Avanzada

 * `/palabra` Buscar "palabra" hacia adelante en el documento.
 * `?palabra` Buscar "palabra" hacia atrás.
 * `n` Moverse a la siguiente coincidencia.
 * `N` Moverse a la coincidencia anterior.
 * `:g/pat/bd` Ejecutar un comando sobre líneas que coincidan con el patrón "pat"
   en el archivo.

## Atajos y Opciones Útiles

 * `:set number` Muestra los números de línea.
 * `:set relativenumber` Muestra los números de línea relativos.
 * `:syntax on` Activa la coloración de sintaxis.
 * `:set tabstop=n` Ajusta la cantidad de espacios por tabulación (reemplaza `n`
   por el número deseado).
 * `:help [comando]` Abre la documentación de Vim para el comando especificado.

## Conclusión

Vim es un editor tan complejo como eficiente. Aunque puede tomar tiempo adaptarse,
dominar los comandos internos abre un mundo de productividad. La clave es practicar
y familiarizarse con estos comandos poco a poco hasta que se vuelvan naturales.
