it-swarm.com.de

Mit <Strg> + <Rücktaste> werden Wörter im Gnome-Terminal- und Vim-Einfügemodus gelöscht

Es scheint, als ob <ctrl> + W jeweils ein Wort rückwärts löscht. Das ist großartig, aber ich würde wirklich wirklich so mit <ctrl> + <backspace> arbeiten wie die meisten anderen Apps.

Wie geht das am besten? Ich brauche die Änderung, um Gnome-Terminal-Befehle, Kommandozeilen-VIM und GUI-VIM zu beeinflussen.

9
Costa

Beachten Sie, dass dies im Terminal und im Standard-Emacs-Modus (den Sie verwenden, wenn Ctrl+W löscht das vorherige Wort für Sie). Es funktioniert nicht im vi-Modus der Bash und beeinflusst vi/vim selbst nicht. Dies ist daher nur eine teilweise Antwort, aber das Beste, was dieser Emacs-Benutzer bieten kann.


Diese Art von Dingen wird von der Bibliothek readline verwaltet, deren Verhalten über ~/.inputrc gesteuert werden kann. Bearbeiten (oder erstellen, falls nicht vorhanden) ~/.inputrc und fügen Sie diese Zeile hinzu:

"\C-H":"\C-W"

Öffnen Sie nun ein neues Terminal und es sollte funktionieren.

Erläuterung

Der \C-H ist eigentlich Control+BackSpace. Sie können die Tastencodes anzeigen, indem Sie drücken Ctrl+V dann der Schlüssel, nach dem Sie suchen. Du wirst das sehen BackSpace gibt ^H zurück.

Nun ist es sollte möglich zu binden Control+BackSpace zu der Bash-Funktion, die das vorherige Wort (backward-kill-Word oder unix-Word-rubout) löscht, indem "\C-H": backward-kill-Word verwendet. Ich kann das jedoch nicht zum Laufen bringen. Es funktioniert sehr gut mit verschiedenen Tasten (zB "\C-E": backward-kill-WordCtrl+E Löschen Sie das vorherige Wort), aber aus irgendeinem Grund kann ich es nicht zum Arbeiten bringen BackSpace.

Um dies zu umgehen, ordnen wir es einfach zu Ctrl+Backspace zu Ctrl+W Das ist bereits auf backward-kill-Word abgebildet. Also, wenn Sie drücken Ctrl+Backspace, das wird übersetzt in Ctrl+W die wiederum wird backward-kill-Word senden. Ich habe die Idee für diese Problemumgehung von diesem SU-Beitrag .

7
terdon

Bis vor kurzem hat gnome-terminal denselben Code auf ausgegeben Backspace und Ctrl+BackspaceDaher können Sie die beiden in Ihrer Anwendung nicht unterscheiden.

Dies wurde in vte-0.42 behoben, das Teil von Gnome 3.18 ist, das diesen Herbst veröffentlicht wurde.

Wenn Sie Wily verwenden, finden Sie aktualisierte Pakete in Gnome3 Staging .

3
egmont

Es funktioniert auf meiner Maschine. Stellen Sie sicher, dass Sie tmux von master und nvim von linuxbrew verwenden und control + backspace auch in bash und vim funktioniert!

(Holen Sie sich Bash von Linuxbrew auch)

1
Fábio Santos