Wie kann der in der Befehlszeile eingegebene Text ohne Verwendung der Maus effizient in die Zwischenablage des Systems übertragen werden?

14

Angenommen, ich habe den folgenden langen Befehl in die Befehlszeile eingegeben

 $ some very long command that I want to copy to the clipboard

Wie kann ich dies effizient in die Zwischenablage des Systems übertragen? Ich benutze Gnome Terminal 2.23.1.

Ich weiß, dass ich die Maus nehmen und markieren und kopieren kann, aber ich möchte eine allgemeine Tastaturlösung.

Es wäre auch gut, wenn es auf mehrere Befehlszeilenprogramme verallgemeinert würde.

Im Bash-Modus im vi-Modus kann ich beispielsweise vden Befehl in vim drücken und dann bearbeiten und somit die Funktionen von Vim zum Kopieren in die Zwischenablage verwenden. Dies funktioniert jedoch nicht, wenn R in der Befehlszeile verwendet wird. Es ist auch ein bisschen langsam.

Ich würde es mögen, wenn ich im vi-Modus yyden Inhalt der Zeile in die Zwischenablage des Systems kopieren könnte , aber das scheint nicht zu funktionieren. Außerdem scheinen irgendwelche Ruckbefehle den Inhalt nicht in die Zwischenablage des Systems zu kopieren. Sie scheinen nur in einen von Bash verwendeten Puffer zu kopieren.

AKTUALISIEREN:

Nach dem posten habe ich gefunden

Jeromy Anglim
quelle
1
Nicht genau das, wonach Sie fragen: Mit screen können Sie das erreichen, wonach Sie fragen, wenn Sie auf diese Antwort antworten: askubuntu.com/questions/56570/…
enzotib
Nach dieser Antwort ( askubuntu.com/a/503861/43594 ) können Sie Maustasten in Universal Access aktivieren und die Maus mit den Zifferntasten bewegen, wobei die Zahl fünf als Klick fungiert. Wenn es schnell doppelt angeklickt wird, wird das Wort ausgewählt, über dem sich der Zeiger befindet. Wenn es schnell dreimal angeklickt wird, wird die gesamte Zeile ausgewählt. Dies sollte zusammen mit den Antworten zum Kopieren (Strg-Umschalt-C) das meiste tun, was Sie brauchen.
James

Antworten:

3

Sie könnten auch einen Zwischenablage-Manager wie parcellite. Es ist ein GTK + -Zwischenablage-Manager, der auch über Befehlszeilenfunktionen für die Zwischenablage verfügt

Sie können es über die Befehlszeile von verwenden

echo "some very long command that I want to copy to the clipboard" | parcellite
##or##
parcellite "some very long command that I want to copy to the clipboard"

Es ist nicht standardmäßig installiert und daher müssen Sie Parcellite von installieren sudo apt-get install parcellite

Nitin Venkatesh
quelle
1
danke, zumindest wenn ich in der Bash bin, habe ich manchmal verwendet echo my command | xclip -se c; Wenn der Befehl jedoch Anführungszeichen und andere Sonderzeichen enthält, wird er echohäufig nicht wörtlich kopiert.
Jeromy Anglim
1

Die Abschlüsse, die ich bekommen kann, sind, wenn ich den Verlauf und xclip in Verbindung dazu verwende

echo !! | xclip

Dadurch wird der letzte Befehl in die Zwischenablage der mittleren Schaltfläche eingefügt. Ich bin immer noch auf der Suche nach etwas Besserem, da ich es auf einen Befehl beschränken möchte. Ich habe jedoch ein Problem, weil der Verlauf in Shell-Skripten nicht funktioniert und ich nicht weiß, dass es eine Möglichkeit gibt, !!einen Alias ​​richtig zu verwenden . Natürlich scheint dies nicht ganz das zu sein, wonach ich gefragt werde, um mir Notizen darüber zu machen, was ich tue. Irgendwelche Überlegungen?

user27643
quelle
Außerdem gibt es immer noch die Frage, wie Sie Befehle mit Anführungszeichen kopieren.
Jeromy Anglim
0

Sie sollten verwenden können Ctrl + Shift+ Cfür Kopieren und Ctrl+ Shift+ Vfür überall im Terminal einfügen.

Dirk Hartzer Waldeck
quelle
3
Sie benötigen noch die Maus, um den Text auszuwählen.
Enzotib
doh! sehr gültiger Punkt
Dirk Hartzer Waldeck
2
Was wirft die Frage auf, ist es möglich, das Terminal oder die Bash anzupassen, um Text über die Tastatur auswählen zu können?
Jeromy Anglim
@ JeromyAnglim Related: stackoverflow.com/q/312213/1172302
Nikos Alexandris