Fn-Delete vincolante in zsh su Mac OS X


22

In zsh, ogni volta che premo Fn + Elimina (che è in avanti cancella) viene inserita una tilde (~). Questo indica che zsh non ha il limite di chiave.

Come lo associo e faccio in modo che si comporti normalmente (elimina davanti al cursore)?

Risposte:


20

Per prima cosa scopri quale sequenza genera.

echo "CtrlVFnDelete" | od -c

Quindi associa quella sequenza usando il normale meccanismo di associazione zsh.


1
~> echo "~" | od -c 0000000 ~ \ n 0000002 ~> Cosa devo fare ora con queste informazioni?
Thomas R,

10
@rixth: In realtà non sta producendo solo una tilde. Non puoi usare echo "~", devi effettivamente seguire le indicazioni che ti ha dato Ignacio . Sul mio sistema, è ^[[3~(o come odoutput:) 033 [ 3 ~. Quindi sarebbe il comando bindkey "^[[3~" delete-charche andrebbe nel tuo ~/.zshrc.
In pausa fino a nuovo avviso.

2
Per chiarire quanto sopra, ctrl-vè una sequenza di escape speciale che significa "inserire il carattere successivo che premo come carattere letterale senza caratteri di escape, invece di fare qualsiasi cosa di solito". Ciò significa che non viene convertito in ~, ma rimane la sequenza di escape.
NHDaly,

Non capisco come utilizzare l'output di quanto sopra per derivare il bindkey. La mia uscita è 0000000 C t r l V F n D e l e t e \n 0000016.
Oliver Joseph Ash,

4

Per me quanto sopra non ha funzionato, quindi ho aggiunto il seguente legame chiave al mio ~/.zshrc:

bindkey "\e[3~" delete-char

Cordiali saluti: Sono su un Mac (High Sierra).


E come conoscere il codice per qualsiasi altra chiave che voglio associare, ad esempio Fn + F1? in modo che io possa impostare i codici corrispondenti nel mio ~/.zshrc.
alexventuraio

1
È possibile digitare cate quindi digitare i tasti. Fn+F1mi dà ^[OPad esempio.
LordTribual

1

bindkey 'CtrlvFnDelete' delete-char

Questo vincolerà Fn+ Deleteper eliminare in avanti un singolo carattere. Se quanto sopra non è chiaro, è necessario digitare Ctrl+ v, Fn+ Deletetra le virgolette. Ctrl+ vti permette di digitare la sequenza letterale di escape escape di qualunque tasto venga dopo di essa.

Puoi inserire questa riga nel tuo ~/.zshrcfile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.