Vinculação Fn-Delete no zsh no Mac OS X


22

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

Respostas:


20

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.


1
~> eco "~" | od -c 0000000 ~ \ n 0000002 ~> O que faço agora com essas informações?
Thomas R

10
@ixth: Na verdade, não está produzindo apenas um til. Você não pode usar echo "~", você precisa seguir as instruções que Ignacio lhe deu. No meu sistema, é ^[[3~(ou como odsaídas:) 033 [ 3 ~. Portanto, o comando seria o bindkey "^[[3~" delete-charque entraria no seu ~/.zshrc.
Pausado até novo aviso.

2
Para esclarecer o exposto acima, ctrl-vhá 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.
NHDaly 23/05

Eu não entendo como usar a saída do acima para derivar o bindkey. Minha saída é 0000000 C t r l V F n D e l e t e \n 0000016.
Oliver Joseph Ash

4

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


E como saber o código para qualquer outra chave que eu queira vincular, por exemplo, Fn + F1? para que eu possa definir os códigos correspondentes no meu ~/.zshrc.
28418 alexventuraio

1
Você pode digitar cate digitar as chaves. Fn+F1me dá, ^[OPpor exemplo.
precisa

1

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.