No zsh, sempre que eu pressiono Fn + Delete (que é a exclusão direta), um til (~) é inserido. Isso indica que o zsh não tem a chave vinculada.
Como faço para vinculá-lo e fazê-lo se comportar normalmente (excluir na frente do cursor)?
Primeiro, descubra qual sequência ele gera.
echo "
CtrlVFnDelete" | od -c
Em seguida, vincule essa sequência usando o mecanismo de ligação zsh normal.
echo "~"
, você precisa seguir as instruções que Ignacio lhe deu. No meu sistema, é^[[3~
(ou comood
saídas:)033 [ 3 ~
. Portanto, o comando seria obindkey "^[[3~" delete-char
que entraria no seu~/.zshrc
.ctrl-v
há uma sequência de escape especial que significa "insira o próximo caractere pressionado como um caractere literal sem escape, em vez de fazer o que costuma fazer". Isso significa que ele não é convertido para~
, mas permanece como a sequência de escape.0000000 C t r l V F n D e l e t e \n 0000016
.Para mim, o procedimento acima não funcionou, então adicionei a seguinte ligação de chave ao meu
~/.zshrc
:bindkey "\e[3~" delete-char
FYI: Estou no Mac (High Sierra).
fonte
~/.zshrc
.cat
e digitar as chaves.Fn+F1
me dá,^[OP
por exemplo.bindkey '
CtrlvFnDelete' delete-char
Isso ligará Fn+ Deletepara excluir um único caractere para frente. Se o exposto acima não estiver claro, digite Ctrl+ v, Fn+ Deleteentre a digitação das aspas. Ctrl+ vpermite digitar a seqüência de escape de escape literal de qualquer tecla que vem depois dela.
Você pode colocar esta linha no seu
~/.zshrc
arquivo.fonte