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 def,t,FoT.,: Repetir el movimiento def,t,ForTpero 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: EnInsert mode, borra la letra después del cursor.ctrl-w: EnInsert 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 enInsert mode.cc: Borra la línea y entra enInsert mode.C: Borra hasta el final de la línea y entra enInsert mode.r{char}: Remplaza el carácter bajo el cursor.R: Entrar enReplace 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