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 .zshrcoder die Ausgabe von verwenden, tput kDC5anstatt 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 + Backspacefunktioniert nicht
^[[3^für urxvt. Ctrl+V Ctrl+Deletewürde dir das zeigen.
'^[[3^' kill-word bindkeyund '^H' backward-kill-wordzu meiner .zshrc hinzugefügt. Jetzt funktioniert es!
^Hoder ^?werde dafür arbeiten Ctrl+Backspace. Tatsächlich scheint eine solche Bindung nicht möglich zu sein. Alt+Backspaceoder Ctrl+Wkö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 .Xresourcesein Terminal öffnen und dann drücken, ^Vgefolgt von ^BackSpace.