Linux: Kopieren / Einfügen in TTY

18142
timn

Ich suche nach einer Möglichkeit zum Kopieren und Einfügen innerhalb eines TTY. Ich habe nur ein Touchpad und es macht mir weh, es mit zu benutzen gpm. Die einzige Möglichkeit, die mir einfällt, ist die Verwendung von "screen", aber selbst wenn Ctrl-A auf "` "umgestellt wurde, ist es immer noch unbequem und langsam.
Gibt es komfortablere Ansätze?

7
Interessante Frage. GPM gibt es schon lange und ich habe nicht viele Beschwerden gehört, also bin ich ein wenig fraglich, ob ich eine gute Alternative finde ... dmckee vor 14 Jahren 1
gpm funktioniert hier gut, ist aber für meine Bedürfnisse nicht flexibel genug. Die Navigation mit der Tastatur ist viel schneller als mit der Maus. Deshalb bevorzuge ich auch VIM anstelle von grafischen Editoren. VIM-inspirierte Tastenbindungen für TTYs könnten die Navigation verbessern. timn vor 14 Jahren 0
IMHO nach dem Testen empfehle ich die Verwendung des Bildschirms zum Kopieren und Einfügen. Es unterstützt alle Konsolen-Apps, sodass Sie mit lynx / links kopieren und einfügen können. naugtur vor 14 Jahren 0

6 Antworten auf die Frage

6
Lee B

Wenn Sie Bildschirm oder GPM nicht mögen, sind Ihre Alternativen ziemlich begrenzt. Die anderen Optionen, die mir einfallen, sind:

  1. Führen Sie Terminals unter X aus, möglicherweise mit einem Kachelfenstermanager, um ein minimalistisches, konsolenähnliches Aussehen zu erhalten.

  2. Führen Sie eine * BSD anstelle von Linux aus, sodass Sie sysmouse anstelle von gpm verwenden können. Ich höre, dass es besser ist, und meine eingeschränkten BSD-Erfahrungen legen nahe, dass es möglicherweise besser ist, aber ich weiß nicht, ob es im Bereich der Zwischenablage besser ist. Klingt, als ob Sie Ihr Trackpad meistens einfach nicht mögen, was wahrscheinlich nicht ersetzbar ist.

  3. Verwenden Sie Pipes, Named Pipes, Scratchfiles usw. In den meisten Unix-Editoren können Sie ausgewählten Text über normale Befehlszeilenscripts verarbeiten, die beispielsweise so eingerichtet werden können, dass die Auswahl in ~ / .clipboard gespeichert wird. Das Ausführen von Befehlen, die Text eingeben (cat ~ / .clipboard), sollte noch einfacher sein.

  4. Verwenden Sie einen Editor, der mehrere Dateien unterstützt, und kopieren und einfügen. vim tut und emacs auch, ich bin mir sicher.

1) Beim X-Server gibt es einige Mängel, die mich daran hindern, wirksam zu werden. Die erste ist, dass die Tastatur merklich langsamer reagiert als im Framebuffer. Das ärgert mich wirklich, da das Scrollen in einem Dokument (VIM) in einem URxvt bei weitem nicht so schnell ist wie ein VIM in einem TTY. Die nächste Ausgabe ist die Leistung. Obwohl ich KMS und einen gekachelten Fenstermanager (i3) verwende, wird der X-Server nicht sofort gestartet. Auch die Anwendungen nicht. Selbst kleine Anwendungen wie URxvt benötigen zum Starten einige Sekunden. timn vor 14 Jahren 0
Was mich auch stört, ist das Aufblasen. X.org ist ein riesiger Teil komplexen Codes. Da ich kein Spieler bin und auch nicht viele Remote-Desktops warten muss, habe ich absolut keine Notwendigkeit für direktes Rendern, X-Forwarding usw. Eigentlich bietet der Framebuffer alles, was ich zum Arbeiten brauche. Nur die Anzahl der verfügbaren Anwendungen ist etwas begrenzt. :) 2) Das würde mein Problem nicht wirklich lösen, da ich meine Maus loswerden möchte. timn vor 14 Jahren 0
3) Ja, das mache ich gerade, wenn ich einen Link in einem reinen Textdokument in VIM besuchen möchte, aber ehrlich gesagt, den Link mit "yy" in den Puffer kopiert und dann ": tabnew url" gefolgt von einem " p "für das Einfügen und ein abschließendes" w3m $ ((cat url)) "auf der Shell ist nicht so komfortabel wie ein URxvt mit" anklickbaren "Links. timn vor 14 Jahren 0
4
Natim

Sie können Ctrl+ yzum Einfügen verwenden. Das Kopieren hängt davon ab, was Sie kopieren möchten. Wenn es auf der Aufforderung steht: Ctrl+ uvon Anfang an abschneiden, Ctrl+ kbis zum Ende abschneiden.

Vielen Dank. Diese Tastenkombinationen sind sehr nützlich. Leider kann ich sie nur verwenden, wenn ich an der Shell arbeite, aber nicht in Textbrowsern oder anderen Konsolenwerkzeugen. timn vor 14 Jahren 0
1
xenoterracide

Je nachdem, was Sie kopieren und einfügen möchten ... hat bash einen vi-Modus, in dem Sie Ihre Befehle auf eine eher vi-artige Weise bearbeiten können als emacs (bash default) (zsh hat einen vim-Modus). set -o vi in ​​~ / .bashrc setzen.

Nett! Da ich auch VIM-Benutzer bin, sind Tastenkombinationen, die denen des VIM ähneln, von Nutzen. Tatsächlich gibt es noch ein kleines Problem: Manchmal gibt es Websites, auf denen URLs nicht mit Hyperlinks versehen sind, sondern im Klartext. Wenn ich solche Websites in w3m besuche, müsste ich diesen Link manuell kopieren, um dorthin zu gelangen. Ein anderes Beispiel ist VIM: Wenn ich ein Dokument mit URLs sehe, ist es nicht möglich, sie einfach "anzuklicken" (wie in URxvt). Auch hier muss ich sie manuell kopieren. Dies sind die einzigen beiden Anwendungen. Eine Unterstützung für die globale Zwischenablage könnte hilfreich sein. Irgendwelche Ideen? timn vor 14 Jahren 0
1
user203154

tmux is similar to screen and gives you the ability to copy-paste.

dvtm can copy/paste with mouse.

0
xerostomus

Versuche dies:

ls $(xsel -o --display :0) 

Wenn sich in der Zwischenablage "wa *" befindet, wird dies in einem beliebigen TTY-Terminal erzeugt:

$ ls -l $(xsel -o --display :0) -rwxr-xr-x 1 root root 1254 Jan 30 11:44 wav_to_mp3.sh $  

Vielleicht kann es noch einfacher über bash-Aliase gemacht werden. Jedenfalls habe ich das endlich so gelöst:

1) kopiere Text in die Zwischenablage in TTY7 - GUI 2) Dann wechsle ich in den Befehl "TTY1" und schreibe den Befehl: expandclipboard.sh youtube-dl cb läuft ist.

Der Code des Skripts lautet:

 #!/bin/bash var1=$1 if [ "$var1" = "cb" ]; then var1=$(xsel -o --display :0) fi  var2=$2 if [ "$var2" = "cb" ]; then var2=$(xsel -o --display :0) fi  var3=$3 if [ "$var3" = "cb" ]; then var3=$(xsel -o --display :0) fi  var4=$4 if [ "$var4" = "cb" ]; then var4=$(xsel -o --display :0) fi  var5=$5 if [ "$var5" = "cb" ]; then var5=$(xsel -o --display :0) fi  var6=$6 if [ "$var6" = "cb" ]; then var6=$(xsel -o --display :0) fi  var7=$7 if [ "$var7" = "cb" ]; then var7=$(xsel -o --display :0) fi  var8=$8 if [ "$var8" = "cb" ]; then var8=$(xsel -o --display :0) fi  echo $var1 $var2 $var3 $var4 $var5 $var6 $var7 $var8 $var1 $var2 $var3 $var4 $var5 $var6 $var7 $var8 

Ich weiß, es ist immens primitiv, aber ich bin faul, so zu tun, als wäre ich klüger als dieses Skript. :-)

-1
Francisco Manuel Garca Botella

Sie können sich per SSH mit einem anderen Computer verbinden, es ist eine Option =).

Willkommen bei Superuser. Bitte nehmen Sie an der Tour unter https://superuser.com/Tour teil, um das Beste aus dieser Site herauszuholen. SDsolar vor 7 Jahren 1
Wenn Sie nach der [Tour] (/ Tour) immer noch der Meinung sind, dass dies eine gültige, nützliche Antwort ist, [bearbeiten] Sie bitte, um zu erklären, wie sie die Frage beantwortet. Antworten Sie nicht in Kommentaren. Bearbeiten Sie Ihre Antwort, um sie klarer und vollständiger zu machen. Scott vor 7 Jahren 0