Wie konfiguriere ich zsh so, dass Ctrl+ Backspacedas Wort vor dem Punkt beendet? Wie erreicht man das Ctrl+ Deletetötet das Wort nach dem anderen?
Ich benutze urxvt als Terminalemulator.
Wie konfiguriere ich zsh so, dass Ctrl+ Backspacedas Wort vor dem Punkt beendet? Wie erreicht man das Ctrl+ Deletetötet das Wort nach dem anderen?
Ich benutze urxvt als Terminalemulator.
Antworten:
Ich werde mich zuerst auf Ctrl+ konzentrieren Delete.
Der Befehl zsh zum Löschen eines ganzen Wortes vorwärts wird aufgerufen kill-word
. Standardmäßig ist es an Alt+ gebunden D.
Wie Ctrl+ Deletees auch macht, hängt davon ab, welchen Terminalemulator Sie verwenden.
Auf meinem System funktioniert dies in xterm und Gnome Terminal:
bindkey -M emacs '^[[3;5~' kill-word
und für urxvt sollten Sie tun:
bindkey -M emacs '^[[3^' kill-word
Wenn dies nicht funktioniert, geben Sie Ctrl+ V Ctrl+ ein Delete, um den Wert auf Ihrem System anzuzeigen.
Sie können sogar beide zu Ihrer hinzufügen .zshrc
oder die Ausgabe von verwenden, tput kDC5
anstatt die Sequenz fest zu codieren.
Ctrl+ Backspacescheint schwieriger.
Das Drücken auf meinem System entspricht dem Drücken von nur Backspace.
Wenn deins dasselbe ist, ist es meiner Meinung nach die beste Option, stattdessen Alt+ Backspaceoder Ctrl+ zu Wverwenden.
Ctrl + Backspace
funktioniert nicht
^[[3^
für urxvt. Ctrl+V
Ctrl+Delete
würde dir das zeigen.
'^[[3^' kill-word bindkey
und '^H' backward-kill-word
zu meiner .zshrc hinzugefügt. Jetzt funktioniert es!
^H
oder ^?
werde dafür arbeiten Ctrl+Backspace
. Tatsächlich scheint eine solche Bindung nicht möglich zu sein. Alt+Backspace
oder Ctrl+W
könnte angemessener Ersatz sein.
Ich habe das in meinem .Xresources
:
URxvt.keysym.C-BackSpace: \033[33~
und das in meinem .zshrc
:
bindkey -M main -M viins -M vicmd '^[[33~' backward-kill-word
Dies tötet jedes durch Leerzeichen getrennte Wort. Beachten Sie, dass '^ [' das Escape-Zeichen ist. Sie müssen xrdb -load .Xresources
ein Terminal öffnen und dann drücken, ^V
gefolgt von ^BackSpace
.