Wenn ich in zsh die Tastenkombination Fn + Entf drücke, wird eine Tilde (~) eingefügt. Dies zeigt an, dass zsh den Schlüssel nicht gebunden hat.
Wie binde ich es und lasse es sich normal verhalten (vor dem Cursor löschen)?
Stellen Sie zunächst fest, welche Sequenz generiert wird.
echo "
CtrlVFnDelete" | od -c
Binden Sie diese Sequenz dann mit dem normalen zsh-Bindungsmechanismus.
echo "~"
, Sie müssen tatsächlich den Anweisungen folgen, die Ignacio Ihnen gegeben hat. Auf meinem System ist es^[[3~
(oder alsod
Ausgänge:)033 [ 3 ~
. Das Kommando wäre alsobindkey "^[[3~" delete-char
das, was in deine gehen würde~/.zshrc
.ctrl-v
gibt es eine spezielle Escape-Sequenz, bei der "das nächste Zeichen, das ich drücke, als buchstäbliches Zeichen ohne Fluchtzeichen eingefügt wird, anstatt das zu tun, was es normalerweise tut". Das heißt, es wird nicht konvertiert~
, sondern bleibt die Escape-Sequenz.0000000 C t r l V F n D e l e t e \n 0000016
.Für mich hat das oben Genannte nicht funktioniert, also habe ich die folgende Schlüsselbindung zu meinem hinzugefügt
~/.zshrc
:bindkey "\e[3~" delete-char
Zu Ihrer Information: Ich bin auf einem Mac (High Sierra).
quelle
~/.zshrc
.cat
die Schlüssel eingeben und dann eingeben.Fn+F1
gibt mir^[OP
zum Beispiel.bindkey '
CtrlvFnDelete' delete-char
Dies wird Fn+ binden Delete, um ein einzelnes Zeichen weiterzuleiten. Wenn das oben nicht klar ist, müssen Sie zwischen dem Eingeben der Anführungszeichen Ctrl+ vund Fn+ Deleteeingeben. CtrlMit + vkönnen Sie die buchstäbliche Escape-Escape-Sequenz für jede Taste eingeben, die danach kommt.
Sie können diese Zeile in Ihre
~/.zshrc
Datei einfügen.quelle