En zsh, cada vez que presiono Fn + Delete (que es la eliminación hacia adelante) se inserta una tilde (~). Esto indica que zsh no tiene la clave vinculada.
¿Cómo lo ato y hago que se comporte normalmente (eliminar delante del cursor)?
Primero averigua qué secuencia genera.
echo "
CtrlVFnDelete" | od -c
Luego, une esa secuencia usando el mecanismo normal de enlace zsh.
echo "~"
, tienes que seguir las instrucciones que Ignacio te dio. En mi sistema, es^[[3~
(o comood
salidas:)033 [ 3 ~
. Entonces el comando sería elbindkey "^[[3~" delete-char
que iría en tu~/.zshrc
.ctrl-v
hay una secuencia de escape especial que significa "insertar el siguiente carácter que presiono como un carácter literal sin escape, en lugar de hacer lo que generalmente hace". Lo que significa que no se convierte~
, sino que permanece como la secuencia de escape.0000000 C t r l V F n D e l e t e \n 0000016
.Para mí, lo anterior no funcionó, así que agregué el siguiente enlace de teclas a mi
~/.zshrc
:bindkey "\e[3~" delete-char
FYI: Estoy en una Mac (High Sierra).
fuente
~/.zshrc
.cat
y luego escribir las teclas.Fn+F1
me da^[OP
por ejemplo.bindkey '
CtrlvFnDelete' delete-char
Esto vinculará Fn+ Deletepara eliminar hacia adelante un solo carácter. Si lo anterior no está claro, debe escribir Ctrl+ v, Fn+ Deleteentre escribir las comillas. Ctrl+ le vpermite escribir la secuencia literal de escape de cualquier tecla que venga después.
Puede poner esta línea en su
~/.zshrc
archivo.fuente