Enlace Fn-Delete en zsh en Mac OS X

22

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)?

Thomas R
fuente

Respuestas:

20

Primero averigua qué secuencia genera.

echo "CtrlVFnDelete" | od -c

Luego, une esa secuencia usando el mecanismo normal de enlace zsh.

Ignacio Vazquez-Abrams
fuente
1
~> echo "~" | od -c 0000000 ~ \ n 0000002 ~> ¿Qué hago ahora con esta información?
Thomas R
10
@rixth: en realidad no está produciendo solo una tilde. No puedes usar echo "~", tienes que seguir las instrucciones que Ignacio te dio. En mi sistema, es ^[[3~(o como odsalidas:) 033 [ 3 ~. Entonces el comando sería el bindkey "^[[3~" delete-charque iría en tu ~/.zshrc.
Pausado hasta nuevo aviso.
2
Para aclarar lo anterior, ctrl-vhay 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.
NHDaly
No entiendo cómo usar la salida de lo anterior para derivar el bindkey. Mi salida es 0000000 C t r l V F n D e l e t e \n 0000016.
Oliver Joseph Ash
4

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).

Lord Tribual
fuente
¿Y cómo saber el código para cualquier otra clave que quiera vincular, por ejemplo, Fn + F1? para poder configurar los códigos correspondientes en mi ~/.zshrc.
alexventuraio
1
Puede escribir caty luego escribir las teclas. Fn+F1me da ^[OPpor ejemplo.
LordTribual
1

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 ~/.zshrcarchivo.

anishpatel
fuente