Ich benutze Kubuntu 10.04. Ich möchte einige der Standard-Tastenkombinationen für Bash (Terminal) ändern.
Hier sind die Verknüpfungen, die ich einrichten möchte:
Ctrl- Cum den ausgewählten Text im Terminal in die Zwischenablage zu kopieren.
Ctrl- Vaus der Zwischenablage in das Terminal einfügen.
Ctrl- Zum die Bearbeitung der aktuellen Zeile im Terminal rückgängig zu machen.
Ctrl- Shift- C(oder noch besser Super- C), um den Befehl zu beenden.
Ctrl- Shift- Z(oder Super- Z) als Hintergrundbefehl.
Ctrl- Shift- V(oder Super- V) um der wörtliche Einfügebefehl zu sein (oder was auch immer Ctrl- zvorher getan hat).
Wie nehme ich diese Änderungen vor?
Übrigens gefällt mir, wie das Terminal unter OS X funktioniert. Durch die Verwendung der Befehlstaste werden alle Befehle zum Kopieren / Einfügen sehr konsistent (im Gegensatz zu vielen anderen Dingen in OS X).
PS Ich habe die Bash-Manpage gelesen und es hat nicht geholfen. Es gab mir Ideen, aber ich brauche spezifische Beispiele für die obigen Kombinationen. Vielen Dank.
Antworten:
Dies sind keine Features von bash, sondern Features des Terminaltreibers. Als solche werden sie von angegeben
stty(1)
.quelle
Dies ist jetzt fast vollständig gelöst. Ein Teil der Lösung wurde zuerst von MTK358 unter http://www.linuxquestions.org/questions/linux-software-2/change-bash-shortcut-keys-such-as-ctrl-c-818170/ erwähnt. . Er wies auf die Tatsache hin (ziemlich offensichtlich, sehr zu meiner Verlegenheit), dass die Tastenkombinationen zum Kopieren und Einfügen leicht über die Menüeinstellungen von konsole geändert werden können. Als ich das sah, dauerte es ungefähr 1 Minute, um Strg-C und Strg-V einzurichten, um sie mit dem Terminal zu kopieren und einzufügen.
Der andere Teil der Lösung hätte aus der stty-Manpage hervorgehen müssen, war es aber nicht (für mich). Am Ende habe ich nur experimentiert, basierend auf verschiedenen Hinweisen, wie den oben genannten.
Ich habe mich entschieden, welche nicht numerische Taste ich anstelle von Strg-C als Beendigungsbefehl verwenden möchte. (Ich habe "k" benutzt). Ich habe nie Informationen darüber gefunden, wie man einen Shift-Modifikator auf stty überträgt, also habe ich darauf verzichtet. Nach dieser Entscheidung musste ich nur Folgendes in die Befehlszeile eingeben:
stty intr \ ^ k
Ich habe überprüft, dass alles wie gewünscht funktioniert.
Jetzt musste ich nur noch den einzelnen Befehl (stty intr \ ^ k) in ein Startskript einfügen. Ich bin nicht sicher, welches das "richtige" ist. Ich möchte, dass diese Änderung systemweit und dauerhaft ist.
Irgendwelche Vorschläge, in welchem Skript ich den Befehl platzieren soll?
Und schließlich sind die predigenden Antworten unnötig und nicht hilfreich.
quelle
Einige davon können mit dem normalen KDE-Tastenkürzel eingestellt werden. Klicken Sie in der Konsole im Menü "Einstellungen" auf "Verknüpfungen konfigurieren" und Sie erhalten einen Dialog, in dem Sie die Tastenzuordnungen für die Funktionen ändern können, die von KDE ausgeführt werden. Auf diese Weise können Sie Strg + C zum Kopieren und Strg + V zum Einfügen neu zuordnen. Beachten Sie jedoch, dass diese Tastensequenzen dann nicht mehr an das Terminal weitergeleitet werden und Sie sie nicht mehr verwenden können Strg + C, um beispielsweise ein Programm zu unterbrechen.
Andere Funktionen werden von der
readline
Bibliothek gesteuert , die Sie durch Bearbeiten der Datei konfigurieren können~/.inputrc
. Sie möchten hinzufügen, dass Strg + Z alle in der aktuellen Zeile vorgenommenen Änderungen rückgängig machtstty
Da diese Tastenfolge wahrscheinlich bereits vom Terminal abgefangen wird , müssen Sie sie möglicherweise zum Aufheben der Bindung verwenden, bevor sie funktioniert. Suchen Sie zuerst^Z
in der Ausgabe vonstty -a
(wie in Ignacios Antwort gezeigt) und führen Sie dann beispielsweise, wenn es in angezeigt wirdsusp = ^Z
, ausum diese Tastenzuordnung zu lösen.
Die anderen Änderungen, nach denen Sie fragen, müssten vorgenommen werden,
stty
wie Ignacio sagt, da dies Terminalfunktionen sind, aber ich weiß nicht genau, wie. Das Problem ist, dass ich nicht weiß, ob das Terminal Shift erkennt, oder ob es weiß, wie diese Informationen an übermittelt werden sollenstty
.quelle
Bash verwendet
emacs
odervi
Modus in der Befehlszeile. Es gibt kein Konzept für "Auswahl" oder "Zwischenablage". Es werden Dinge wie "Kill Buffer" und "Point", "Mark", "Word", "Line", "Kill" und "Yank" usw. verwendet.Der Versuch, Funktionen im GUI-Stil zu integrieren, ist bestenfalls frustrierend und funktioniert nicht vollständig. Sie müssen versuchen, Funktionen zu kombinieren
stty
,readline
und das Terminal (vermutlichTerminal.app
für Sie). Sie müssen Funktionen neu zuordnen wieintr
,susp
,lnext
usw., so dass Sie immer noch ihre Funktionen nutzen können.Ich empfehle dringend gegen solche radikalen Modifikationen. Es war einfach nicht dafür gedacht, das zu tun, was Sie wollen.
Wenn du in Rom bist...
quelle
Ich betreiben Ubuntu und änderte die Abkürzung für das Kopieren von dem Standard Ctrl+ Shift+ Czum normaleren und einfach Ctrl+ C. Dies ließ mich jedoch auf das Problem stoßen, dass ich den Interrupt-Befehl ^ C nicht senden konnte .
Dank @ Paul Antwort fand ich das Ausführen des Befehls
Erlaubt mir, den Interrupt-Befehl mit Ctrl+ zu senden K. Allerdings musste dieser Befehl jedes Mal ausgeführt werden, wenn ich das Terminal öffne, was ein Ärger ist (genau wie er selbst erwähnt hat).
Mit ein wenig weiterer Recherche (googeln 😂) habe ich herausgefunden, wie man bei jedem Öffnen des Terminals einen Befehl ausführt (in Ubuntu sowieso) .
Wenn Sie also endlich den folgenden Befehl (einmal) ausführen (in Ubuntu 18.04 und wahrscheinlich mehr), wird jedes Mal das erwartete Verhalten angezeigt.
Abschließend ist noch zu erwähnen, dass Sie den KButton nicht benutzen dürfen . Sie können den Buchstaben k in allen obigen Befehlen gegen einen beliebigen Buchstabenschlüssel Ihrer Wahl austauschen .
quelle