Dominar Vi: Vi editor commands para editar archivos en Linux/Unix
Vi, también conocido como «Visual», es un editor de texto de línea de comandos que ha sido un elemento básico en los sistemas Unix y Linux durante décadas. Su interfaz de usuario basada en modo, que se divide en Modo de comando y Modo de inserción, puede parecer intimidante al principio, pero una vez que se comprenden los fundamentos, Vi puede ser una herramienta sorprendentemente poderosa y eficiente. Este tutorial explorará los conceptos básicos de Vi, cubriendo los vi editor commands esenciales para la navegación, edición, búsqueda y reemplazo de texto, y la gestión de archivos.
Entendiendo los modos de Vi
Vi funciona en dos modos principales:
- Modo de comando: Este es el modo predeterminado en el que se inicia Vi. En este modo, los comandos se ingresan utilizando el teclado para realizar acciones como mover el cursor, eliminar texto, buscar y reemplazar, o guardar y salir del archivo.
- Modo de inserción: En este modo, se ingresa texto directamente en el archivo. Se puede acceder al modo de inserción presionando la tecla ‘i’ en el modo de comando. Para volver al modo de comando, presione la tecla Esc.
Comandos básicos de Vi
Navegación
- Movimiento del cursor:
- h: Mover el cursor un carácter hacia la izquierda.
- l: Mover el cursor un carácter hacia la derecha.
- j: Mover el cursor una línea hacia abajo.
- k: Mover el cursor una línea hacia arriba.
- w: Mover el cursor al principio de la siguiente palabra.
- b: Mover el cursor al principio de la palabra anterior.
- 0: Mover el cursor al inicio de la línea actual.
- $: Mover el cursor al final de la línea actual.
- Salto de línea y palabra:
- gg: Ir al inicio del archivo.
- G: Ir al final del archivo.
- H: Ir al inicio de la pantalla.
- L: Ir al final de la pantalla.
- M: Ir al medio de la pantalla.
- Búsqueda:
- /palabra: Buscar la palabra «palabra» hacia adelante.
- ?palabra: Buscar la palabra «palabra» hacia atrás.
- n: Buscar la siguiente ocurrencia.
- N: Buscar la ocurrencia anterior.
Edición
- Eliminación:
- x: Eliminar el carácter actual.
- dw: Eliminar la palabra actual.
- dd: Eliminar la línea actual.
- D: Eliminar desde el cursor hasta el final de la línea.
- d0: Eliminar desde el cursor hasta el inicio de la línea.
- Copiar y pegar:
- yy: Copiar la línea actual.
- yw: Copiar la palabra actual.
- y$: Copiar desde el cursor hasta el final de la línea.
- y0: Copiar desde el cursor hasta el inicio de la línea.
- p: Pegar el contenido del búfer de copia en la línea actual.
- Reemplazo:
- r: Reemplazar el carácter actual.
- R: Reemplazar en modo de inserción.
- cw: Reemplazar la palabra actual.
- s: Reemplazar el carácter actual con el texto que se ingrese.
- c: Reemplazar desde el cursor hasta el final de la línea.
Búsqueda y reemplazo
Vi proporciona una forma poderosa de buscar y reemplazar texto dentro de un archivo.
- Búsqueda:
- /palabra: Buscar la palabra «palabra» hacia adelante.
- ?palabra: Buscar la palabra «palabra» hacia atrás.
- n: Buscar la siguiente ocurrencia.
- N: Buscar la ocurrencia anterior.
- Reemplazo:
- :s/palabra1/palabra2/g: Reemplazar todas las ocurrencias de «palabra1» por «palabra2» en la línea actual.
- :%s/palabra1/palabra2/g: Reemplazar todas las ocurrencias de «palabra1» por «palabra2» en todo el archivo.
Guardar y salir
- :w: Guardar el archivo actual.
- :wq: Guardar el archivo y salir del editor.
- :q!: Salir del editor sin guardar los cambios.
- :q: Salir del editor si no se han realizado cambios.
Comandos avanzados de Vi
Vi ofrece una amplia gama de comandos avanzados para mejorar la eficiencia. Aquí hay algunos ejemplos:
- :set number: Mostrar los números de línea en el archivo.
- :set nonumber: Ocultar los números de línea.
- :set showmode: Mostrar el modo actual en la parte inferior de la pantalla.
- :set nohighlight: Deshabilitar el resaltado de sintaxis.
- :set hlsearch: Habilitar el resaltado de las coincidencias de búsqueda.
- :undo: Deshacer la última acción.
- :redo: Rehacer la última acción deshecha.
- u: Deshacer la última acción (más rápido que :undo).
- Ctrl+r: Rehacer la última acción (más rápido que :redo).
Vi editor commands útiles
- i: Ingresar al modo de inserción.
- a: Insertar texto después del cursor.
- o: Insertar una nueva línea debajo de la actual.
- O: Insertar una nueva línea arriba de la actual.
- x: Eliminar el carácter actual.
- dd: Eliminar la línea actual.
- p: Pegar el contenido del búfer de copia.
- u: Deshacer la última acción.
- Ctrl+r: Rehacer la última acción.
- :wq: Guardar el archivo y salir.
Comparación con otros editores
Vi se diferencia de otros editores de texto como Nano o Vim de varias maneras:
- Interfaz: Vi es un editor de modo, mientras que Nano y Vim tienen interfaces más tradicionales.
- Curva de aprendizaje: Vi tiene una curva de aprendizaje más pronunciada que Nano o Vim, pero una vez que se dominan los comandos, puede ser más eficiente.
- Funcionalidad: Vi es una herramienta muy poderosa que ofrece una amplia gama de funciones, incluidas las macros, la búsqueda avanzada y el reemplazo, y la edición remota.
Conclusión
Vi es una herramienta esencial para usuarios de Linux y Unix, que ofrece una forma poderosa y eficiente de editar archivos. Comprender los comandos básicos y los modos de operación de Vi puede aumentar considerablemente la productividad. Con práctica y paciencia, puede dominar Vi y aprovechar al máximo sus funciones para realizar tareas de edición de texto de forma rápida y eficiente.