guía

Cómo entrar y usar el modo Vi en Zsh.

por Lógico (@logico_ar)

PUBLICADO 09:15 AM
10.2.2019

Si Vim es tú editor de texto favorito y estás usando Zsh, te enseñamos cómo usar el vi-mode para editar comandos.

Tenemos que hacer una confesión. Somos adictos a Vim. Específicamente al modo de movernos con el teclado sin siquiera utilizar las flechas direccionales y realizar acciones que de otra manera serían imposibles. Por suerte hay muchísimos programas que implementan de alguna manera los modos de operación de Vim. Particularmente hoy te vamos a mostrar como entrar en el vi-mode de Zsh, usando un plugin del genial oh-my-zsh.

Lo primero que tenemos que hacer es activar el plugin vi-mode . Para hacerlo tenemos que editar o agregar una línea en el archivo .zshrc con lo siguiente

plugins=(vi-mode)

Entrar en modo vi.

Ahora empieza la parte divertida. Para ingresar al Normal mode presionamos ESC o CTRL-[. Y magia, aparecerá el indicador del modo normal y ya estamos listos para editar el comando the vim way. A continuación te dejamos todos los movimientos que podemos realizar.

Historial.

  • ctrl-p : Previa entrada.
  • ctrl-n : Próxima entrada.
  • / : Buscar para atrás.
  • n : Repetir la última búsqueda. /

Editar en Vim.

  • v : Editar la línea directamente en Vim.

Movimientos.

  • l: Mover un carácter a la derecha.
  • h: Mover un carácter a la izquierda.
  • $ : Ir al final de la línea.
  • ^ : Ir al primer carácter no blanco de la línea.
  • 0 : Ir al principio de la línea.
  • w : Moverse una palabra hacia adelante (cuenta los guiones como palabras).
  • W : Moverse una palabra hacia adelante (ignora los guiones).
  • e : Moverse al final de una palabra (cuenta los guiones como palabras).
  • E : Moverse al final de una palabra (ignora los guiones).
  • b : Moverse una palabra hacia atrás (cuenta los guiones como palabras).
  • B : Moverse una palabra hacia atrás (ignora los guiones).
  • t{carácter} : Se mueve a la derecha hasta una letra antes de la ocurrencia de {carácter}.
  • T{carácter} : Se mueve a la izquierda hasta una letra antes de la ocurrencia de {carácter}.
  • f{carácter} : Se mueve a la derecha hasta la ocurrencia de {carácter}.
  • F{carácter} : Se mueve a la izquierda hasta una letra antes de la ocurrencia de {carácter}.
  • ; : Repetir el movimiento de f, t, F o T.
  • , : Repetir el movimiento de f, t, F or T pero en la dirección opuesta.

Insertar.

  • i : Insertar texto antes del cursor.
  • I : Insertar texto al inicio de la línea.
  • a : Agregar texto después del cursor.
  • A : Agregar texto al final de la línea.
  • o : Inserta nueva línea abajo de la actual.
  • O : Inserta nueva línea arriba de la actual.

Eliminar e insertar.

  • ctrl-h : En Insert mode, borra la letra después del cursor.
  • ctrl-w : En Insert mode, borra la palabra antes del cursor.
  • d{movimiento} : Borra el {movimiento}.
  • dd : Borra la línea.
  • D : Borra todo desde el cursor hasta el final de la línea.
  • c{movimiento} : Borra el {movimiento} y entra en Insert mode.
  • cc : Borra la línea y entra en Insert mode.
  • C : Borra hasta el final de la línea y entra en Insert mode.
  • r{char} : Remplaza el carácter bajo el cursor.
  • R : Entrar en Replace mode.
  • x : Borrar carácter bajo el cursor.
  • X : Borrar carácter antes del cursor.

Varios.

Todos estos movimientos, pueden ser precedidos por cantidad de repeticiones. Si por ejemplo presionamos
5x, eliminamos 5 carácteres bajo el cursor. Si nos queremos mover tres palabras presionariamos 3w.

Para quitar el delay al momento de entrar al vi-mode, agregamos la siguiente línea al .zshrc.

export KEYTIMEOUT=1

El tema y cursor de los screenshots son logico zsh-theme y Typewriter


Comentarios desactivados en la versión móvil.