Ctrl + C Text im Gnome-Terminal kopieren lassen?


70

Kann ich einen CtrlKopierbefehl Causführen, wenn im Terminal hervorgehobener Text vorhanden ist ?
Andernfalls sollte das normale Verhalten beibehalten werden.

(Wenn es ein anderes Terminal als gnome-terminal gibt, ist das wahrscheinlich auch in Ordnung.)


1
Sie müssen nicht die Maus benutzen; auf einer Mac - Tastatur können Sie verwenden shift+ enter+ fn. Und auf einer "normalen" Tastatur denke ich, ist es shiftund insert.
David Thomas

Ich bestätige. Ich benutze einfach eine andere Mischung aus Copy-Fu auf einer "normalen" Tastatur: Strg + Einfügen zum Kopieren (und Umschalt + Einfügen zum Einfügen), was nicht mit dem Programm-Interrupt in Konflikt steht Strg + C
kza

Antworten:


74

Sie können die Tastenkombination für Ausschneiden und Einfügen im Menü Bearbeiten → Tastenkombinationen von Ctrl+ Shift+ C, Ctrl+ Shift+ Vauf das, was Sie sagen, nämlich Ctrl+ C, Ctrl+ V, ändern . Sie sollten jedoch auch die Standardbedeutung des Terminals für + (Interrupt) ändern , z. B. auf diese WeiseCtrlC

stty intr ^J

(Ich habe Ctrl+ gewählt, Jweil ich mich nicht erinnere, dass es mit einer Aktion verbunden ist, aber Sie können Ihre eigene Wahl treffen.)

Ich denke nicht, dass es möglich ist, die Standard-Interrupt-Aktion für Ctrl+ Cnur beizubehalten, wenn kein Text markiert ist.


1
Wie @Pithikos in der Antwort von mangoDrunk festgestellt hat, können Sie nach dem erneuten Zuordnen der Verknüpfung Kopieren zu Strg + C mit Strg + Umschalt + C unterbrechen, ohne etwas anderes konfigurieren zu müssen.
Dubrox

1
Ich habe es auf ^ Q gesetzt, weil es normalerweise "unfreeze / start" ist, was selten verwendet wird, schädlich ist und näher an CTRL liegt. Wenn sich jemand dazu entscheidet, darf er nicht vergessen, zuerst "start" neu zuzuordnen, wie: stty start ^ J
k3a

Beachten Sie, dass es nicht möglich ist, eine Kombination mit Shift zu wählen stty. (Ich habe es auf ^ X gesetzt, da "Schneiden" hier keinen Sinn macht.)
Evgeni Sergeev

39

Ctrl+ Cist bereits einem anderen Befehl zugewiesen, der das auf dem Terminal ausgeführte Programm unterbricht. Wenn Sie beispielsweise auf www.google.com einen Ping-Befehl senden, wird der Ping-Befehl so lange an Google gesendet, bis Sie ihn anhalten. Die Art und Weise, wie Sie es tun, ist durch Drücken von Ctrl+C

Sie konnten also nicht einfach die Zuordnung dieser Kombination ändern.

Markieren Sie den zu kopierenden Text, drücken Sie Ctrl+ Shift+ Cund der Text wird in die Zwischenablage kopiert. Ctrl+ Shift+ VUnd Sie es einfügen.

Lass es mich wissen, wenn es nicht funktioniert ...


16
Anstatt zu sagen, dass diese Tastenkombinationen andere spezifische Bedeutungen im Terminal haben, ist es wahrscheinlich korrekter zu sagen, dass verschiedene Konsolenanwendungen diese verwenden können. Wenn der Terminalemulator sie also nicht weiterleitet, können diese Apps möglicherweise unbrauchbar werden .
James Henstridge

6
OS X ist ein bisschen schlauer: Wenn Text ausgewählt ist, wird er Ctrl+Cals Kopie interpretiert, und wenn kein Text ausgewählt ist, wird er als Interrupt interpretiert.
Behrang

5
Eigentlich ist OS X nicht schlauer. Die Tastenkombination zum Kopieren ist Cmd-C, nicht Strg-C.
Andrei Maxim

28

Abgesehen von dem, was @Dan gesagt hat, gibt es eine weitere Option zum Kopieren und Einfügen von Text in Linux, die ich viel schneller und einfacher finde, da nicht von der Maus (mit der Sie die Auswahl treffen) zur Tastatur gewechselt werden muss :

  • Wenn Sie Text mit der Maus auswählen, wird er in die Zwischenablage kopiert
  • Mit der mittleren Maustaste wird es eingefügt.

Diese Funktion ist besonders im Terminal nützlich, wenn Sie beispielsweise einen Befehl aus bereits auf dem Bildschirm angezeigten Textbits zusammenstellen.

Dies funktioniert in allen Anwendungen, so dass es möglich ist, Text von einer Webseite zum Terminal usw. zu kopieren und einzufügen.

Der Zwischenspeicher für das Kopieren und Einfügen mit mittlerem Mausklick unterscheidet sich von dem Zwischenspeicher für Strg-C / Strg-V, mit dem zwei verschiedene Textbits gleichzeitig kopiert werden können.


25

Wie bereits erwähnt, wird Ctrl+ Cnormalerweise zum Unterbrechen eines Programms verwendet. Aber anstatt Ctrl+ Shift+ Czum Kopieren zu verwenden, was ich viel häufiger mache als einen Prozess zu unterbrechen, ändere ich die Einstellung so, dass Ctrl+ Czum Kopieren und Ctrl+ Shift+ Czum Unterbrechen.

Sie können dies in GNOME Terminal tun, indem Sie zu "Bearbeiten" -> "Tastaturkürzel ..." gehen und die Aktion "Kopieren" Ctrl+ Czuordnen und "Einfügen" Ctrl+ zuordnen V. Der Interrupt-Befehl wird automatisch auf Ctrl+ Shift+ umgestellt C.


1
Aber wie ordne ich dann Strg + Umschalt + C zu, um einen Prozess zu unterbrechen?
kramer65

11
Es passierte automatisch für mich. Alles, was ich getan habe, war Kopieren auf Strg + C und nachdem ich das gespeichert hatte, wurde Strg + Umschalt + C zum Interrupt.
MangoDrunk

1
@mangoDrunk der Grund ist, dass das Halten im Shift + Ctrl + <key>Wesentlichen das gleiche Zeichen wie druckt Ctrl + <key>. Sie können mitread
Pithikos

Ich schlage vor, dies zu tun, weil ich beim Kopieren viel mehr einfüge als beim Unterbrechen eines Prozesses, und es ist einfach, sich Strg + Umschalt + C als Unterbrechung zu merken, anstatt meine Kopiergewohnheit zu ändern, die überall gleich ist.
Flyingdrifter

3

Um das Ausschneiden und Einfügen ( Ctrl+ V, Ctrl+ C) in der Konsole oder im Terminal zu ermöglichen, fügen Sie den folgenden Code in das Terminal ein, um die Tastenzuordnungen automatisch zu ändern:

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/copy "<Control>c"

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"

1

Es tut mir leid, dass ich eine Antwort dazu geschrieben habe. Es sieht so aus, als hätte ich zu viel von meinem Ruf für ein Kopfgeld ausgegeben, um einen Kommentar posten zu können.

Es gibt keine Möglichkeit, das Verhalten von Tastaturkürzeln zu ändern, je nachdem, ob eine Textauswahl vorhanden ist oder nicht, und ich würde es vermeiden, die Tastenkombination Strg-C des Terminals neu zuzuweisen.

ABER Sie können sich leicht daran gewöhnen

  • Ctrl+ Inszum Kopieren
  • Shift+ Inszum Einfügen

Dies funktioniert praktisch überall (außer bei Nautilus , seufz) und stört kaum etwas!


1

Wird jemand gesucht, den Sie verwenden können:

> stty intr ^K         # free Ctrl+C for copy use Ctrl+K instead
> stty lnext ^-        # free Ctrl+V for paste use ^- instead
> stty -g
> stty -g > ~/.stty    # store the settings in home directory

Fügen Sie Folgendes hinzu zu ~/.bashrc

case $- in
 *i*)
   stty `cat ~/.stty`     #  reload the stored stty settings
   bind -u quoted-insert  #  unbind the quoted-insert function of bash - free Ctrl+V for paste
esac

Und dann gconf editor oder so, um die Tastenkombinationen des Terminals auf CTRL+ Cfür Kopieren und CTRL+ Vfür Einfügen zu setzen.


Argh ... die Formatierung wurde verzerrt. Siehe: sandipchitale.blogspot.com/2008/10/…
Sandip Chitale


0

Ich denke das kannst du nicht, weil in gnome terminal Ctrl+ C, Ctrl+ X, Ctrl+ Vnicht funktionieren. Zum Ausschneiden, Kopieren und Einfügen müssen Sie den Text markieren, mit der rechten Maustaste klicken und die gewünschte Aktion auswählen


Sie können weiterhin Abkürzungen verwenden, um im Terminal auszuschneiden. Dies sind Strg + Umschalt + C (Kopieren) und Strg + Umschalt + V (Einfügen) und Strg + Umschalt + X.
Rens

0

Wie bereits erwähnt, funktioniert Strg-C aufgrund der Interrupt-Verwendung nicht, aber ich habe gerade einen Weg gefunden, der für mich funktioniert hat. Mein Ziel war es, nur zwei Tasten zu haben, nicht drei, und am besten etwas, an das ich gewöhnt bin, und nicht an einer zu unbequemen Stelle auf der Tastatur. Die Tastatur, die ich auf meiner Linux-Box habe, hat eine "Windows" -Taste, genau wie die Befehlstaste auf einem Mac. Also ging ich einfach zu Bearbeiten> Tastaturkürzel. Als ich die Tastenkürzel zur Verwendung dieser Taste änderte, heißt es Super + C und Super + V. Manchmal benutze ich auch einen Mac, sodass ich mich leicht daran gewöhnen konnte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.