PuTTY wie man Text auswählt und nur mit der Tastatur kopiert


75

Gibt es eine Möglichkeit, einen Text mit der Tastatur so auszuwählen, wie ich es normalerweise mit Umschalt + Pfeilen mache?


Ich denke es ist unmöglich. :(
Lucas Jones

Ich verstehe nicht Shift und Pfeile sind auf der Tastatur.
Scott

Antworten:


71

Aus dem PuTTY-Handbuch :

Das Kopieren und Einfügen von PuTTY funktioniert vollständig mit der Maus. Um Text in die Zwischenablage zu kopieren, klicken Sie einfach mit der linken Maustaste auf das Terminalfenster und ziehen Sie, um Text auszuwählen. Wenn Sie die Taste loslassen, wird der Text automatisch in die Zwischenablage kopiert. Sie müssen nicht Ctrl- Coder Ctrl- drücken Ins. wenn Sie in der Tat, drücken Sie tun Ctrl- C, senden PuTTY ein Ctrl- CZeichen Sie Ihre Sitzung auf dem Server , auf dem es wird wahrscheinlich ein Prozess dazu führen , unterbrochen werden.


9
Meine Zeile ist 24k Zeichen lang. Wie kann ich es kopieren? Ich kann nur den letzten Teil der Zeile oder den ersten Teil im Bildschirmpuffer sehen.
8.

@Gaʀʀʏ Ich weiß, dass Sie von diesem Kommentar schon lange Abstand genommen haben, aber ich möchte nur darauf hinweisen, dass die Option "Alle in Zwischenablage kopieren" gerechtfertigt ist, wenn ich eine 24-KB-Zeile zum Kopieren habe. Es ist sicherlich das, was ich einen Randfall nennen würde.
Sean Allred

@ Gaʀʀʏ, um Seans Antwort hinzuzufügen, die Kopie stammt aus dem Terminal-Buffer und nicht von stdout. Bei sehr langen Zeilen kann es durchaus vorkommen, dass die Zeile den Puffer selbst übergelaufen ist.
ysap

3
Umschalt + Einfügen.
Phocks

26

Soweit mir bekannt ist, gibt es keine Möglichkeit, einen ausgewählten Bereich ohne die Maus aus dem Kittfenster in die Windows-Zwischenablage zu kopieren. Auf der Kitt-Site gibt es eine Funktionsanforderung speziell für diese Funktionalität.

http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/keyboard-copy.html

Die einzige Möglichkeit, Informationen aus dem Kittfenster mit einer Tastenkombination in die Windows-Zwischenablage zu kopieren, besteht darin, das App-Systemmenü "Alles in die Zwischenablage kopieren" zu verwenden (das Sie aus dem Alt-Space aufrufen können, sofern Sie "Fenster> Verhalten>" eingestellt haben Das Systemmenü wird in der Option ALT-Space angezeigt, die in putty konfiguriert ist.

Das Einfügen aus der Windows-Zwischenablage in Putty kann mit Shift- erfolgen Insert.

Wenn Sie nur innerhalb des Terminalfensters selbst kopieren und einfügen müssen, lesen Sie entweder die Manpage für die von Ihnen verwendete Shell oder verwenden Sie die Unix-App "screen" (für weitere Informationen "man screen"), mit der Sie Text auswählen können zum Kopieren / Einfügen innerhalb des Terminalfensters (ähnlich wie das Kopieren / Einfügen von vi funktioniert). ein Auszug aus den Manpages:

   C-a esc     (copy)        Enter copy/scrollback mode.

   C-a ]       (paste .)     Write the contents of the paste buffer to the
                             stdin queue of the current window.

   C-a {
   C-a }       (history)     Copy and paste a previous (command) line.

   C-a >       (writebuf)    Write paste buffer to a file.

   C-a <       (readbuf)     Reads the screen-exchange file into the paste
                             buffer.

   C-a =       (removebuf)   Removes the file used by C-a < and C-a >.

1
@ xgMz - Funktioniert gut für mich. Überraschend, dass dieses Ticket vor über 13 Jahren eingereicht wurde und sich noch niemand darum gekümmert hat.
ArtOfWarfare

Link funktioniert jetzt.
XgMz

25

control+ insert= kopieren

shift+ insert= einfügen


2
Ich weiß nicht, warum dies abgelehnt wurde. Es ist die einzige Antwort, die für mich funktioniert hat. Ich konnte ein AutoHotkey Skript , dass Kopien von Text aus GVim in Windows, Pasten es zu Putty machen, und es läuft in einer interaktiven IPython Sitzung
rsoren

2
control+ insertscheint absolut nichts zu tun. shift+ insertfügt allerdings ein.
ArtOfWarfare

3
Ab 2016 funktioniert es mit Windows 7 und Putty 0.63. Die Frage beinhaltet jedoch anscheinend auch das Einstellen der Auswahl für das Kopieren von AFAICT.
Stefanct

3
@rsoren - Das OP fordert eine Nur-Tastatur-Methode an. Diese Antwort muss zuerst mit der Maus markiert werden. Entsprechend der ausgewählten Antwort ist nach dem Markieren die Tastenkombination <Strg + Einfg> impliziert.
ysap

Funktioniert nicht für mich unter Windows 7
SherylHohman


2

Ich benutze GNU-Bildschirm,

Ich habe auch dieses in meinem screenrc, zum mit vim nett zu spielen:

register [ "\033:se paste\015a"
register ] "\033:se nopaste\015a\033"
bind ^] paste [.]

Ein Freund von mir hat einen Haken im Bildschirm, um die "Bildschirm-Zwischenablage" in eine oder beide der x Zwischenablagen (Auswahl oder Zwischenablage) zu kopieren, und ich glaube, dass Putty die benötigten Übersetzungen macht. Ich werde versuchen, es auszugraben.

Sie können wahrscheinlich dasselbe mit xclip arrangieren, die gesuchte Beschwörung sollte verwendet werden xclip -selection clipboard

Ich würde schnell testen, ob xclip -selection clipboard -oder Inhalt Ihrer Zwischenablage ausspuckt.


Ich wünschte, das hätte in PuTTY funktioniert! Ich habe es versucht. Es beschwerte sich über "kann nicht geöffnet werden"
Brian Peterson

Verwenden xclipsollte funktionieren. Ich benutze tmuxund xselzu kopieren von Puty mit Tastaturen .. Ich habe noch nicht herausgefunden, wie man mit der Tastatur in das Windows-Terminal
einfügt

2

Dies ist möglicherweise eher eine Problemumgehung als eine Lösung.

Wenn Sie in vim einen Block kopieren möchten, den Sie im visuellen Modus ausgewählt haben (normalerweise einen Block, der viele Seiten umfasst), können Sie ihn in eine Datei schreiben (indem Sie eingeben, :w filename.txtwährend der Text ausgewählt ist und Sie sich noch im visuellen Modus befinden) ). Sobald Sie das getan haben, können Sie:

  1. Öffnen Sie die Datei in einem Windows-Editor, wenn sie über Samba eingehängt ist
  2. Lesen Sie den Dateiinhalt über Apache oder einen FTP-Server
  3. Senden Sie die Datei als Anhang per E-Mail (siehe Befehl unten - erfordert Mutt):

    echo "My Message Body" | mutt -s "my subject line" -a filename.txt -- recipient@email-server.com
    

Persönlich bevorzuge ich Option 1.


2

Ein weiterer, etwas provisorischer Vorschlag ist, Maustasten in Windows zu aktivieren. In Windows 7 ist es unter dem Ease of Access Center.

  1. Klicken Sie auf "Vereinfachen Sie die Verwendung der Maus".
  2. Aktivieren Sie das Kontrollkästchen "Maustasten einschalten".
  3. Klicken Sie auf "Maustasten einrichten", um weitere Einstellungen vorzunehmen.

Der Standard-Hotkey für Maustasten ist Alt+ Shift+ NumLock.

Hoffentlich trifft diese Tastenkombination nicht mit Ihrer Sitzung stören (oder nur Alt+ Tabaus und aktivieren Sie es von außen Kitt). Ich glaube, das Drücken von 0 auf dem Nummernblock startet eine Klick-Sperre, mit der Sie über den Teil des Texts ziehen können, den Sie hervorheben / kopieren möchten.


2

Ich hatte es satt, Zeile für Zeile mit der linken Maustaste nach unten zu scrollen, um die Sitzungsausgabe zu kopieren. Aber jetzt muss ich zweimal auf den mittleren Knopf klicken ; zuerst am Anfang und zweitens am Ende. Wie ich gemacht habe:

  1. Gehen Sie zum Putty-Konfigurationsfenster
  2. Wählen Sie "Auswahl" aus der Kategorie auf der linken Seite des Fensters.
  3. Wählen Sie unter 'Maussteuerung' die Option 'Kompromittieren (mittlere Ausdehnung, rechte Einfügung)', falls nicht bereits ausgewählt.

2
Bitte lesen und verstehen Sie die Frage und versuchen Sie dann, sie zu beantworten.
Renju Chandran Chingath

Dies ist die beste Art der Auswahl, und Putty übernimmt das Kopieren. Um jedoch mehr als einen Textbildschirm zu kopieren, müssen Sie meines Erachtens eher cat verwenden. vi bewegt den Cursor weiter.
Noumenon

1

Wir haben eine Weile daran gearbeitet, und Putty selbst kann nicht zulassen, dass Sie nur mit der Zwischenablage kopieren.

Putty kann jedoch die umgekehrte Übertragung von Daten von der Remote-Seite ermöglichen. Wenn Sie ein Tool wie Vim oder Tmux verwenden, um auf der Tastatur basierende Textauswahlen zu treffen, können Sie die Ausgabe in eine Datei und (ich datiere hier) netcat in einen Putty-Reverse-Port-Tunnel zu einem lokalen Dienst übertragen, der die Eingaben in den lokalen Dienst überträgt Zwischenablage.

Ich habe hier ein Video dazu gemacht: https://www.youtube.com/watch?v=RI79eeCuyvE , aber hier ist die Kurzversion:

Stellen Sie Ihren putty> connection> SSH> tunnel so ein, dass R11311 an localhost weitergeleitet wird: 1234 Verwenden Sie netcat als Listening-Server, der die Ausgabe an den Windows 10-Befehl clip weiterleitet, der Eingaben an die Windows-Zwischenablage sendet. Wickle dies in eine ewige for-Schleife wie folgt:

for /L %N IN () do nc -lp 1234 | clip

Führen Sie das Obige an einer Eingabeaufforderung aus, die Sie als Administrator ausführen, da Sie sich auf einen Port verstecken.

Auf dem entfernten * nix-Server müssen Sie vim oder Tmux verwenden, um eine Textauswahl an eine Datei zu senden.

Verwenden Sie einen Befehl, um Ihre Textauswahl an eine Datei zu senden

tmux save-buffer ~/.clipboard

Sie können Vim auch verwenden, um einen Puffer (in diesem Fall z) in einer Datei zu speichern

silent! redir! > ~/.clipboard
silent! echo @z
silent! redir END

Ich binde die vim- und tmux-Zwischenablagen mithilfe der .clipboard-Datei als Vermittler mithilfe einer vim-Funktion ein .

Sobald sich Ihre Textauswahl in der Datei befindet, können Sie die Ausgabe an die Remote-Seite des Ports weiterleiten:

cat ~/.clipboard | nc 127.0.0.1 11311

Oder in einem VIM-Skript

silent! !cat ~/.clipboard | nc 127.0.0.1 11311 &

Beachten Sie, dass das kaufmännische Und erforderlich ist, da ich das netcat- -q 0Flag nicht ordnungsgemäß verwenden konnte. Vielleicht können Sie. Wenn es nicht funktioniert, wartet es eine volle Sekunde, bevor es geschlossen wird, was den Arbeitsfluss unterbrechen kann. Mit dem kaufmännischen Und wird der Vorgang sofort abgebrochen, der im Hintergrund in 1 Sekunde abgeschlossen ist.

Wenn Sie alle oben genannten Schritte ausführen, werden die Zwischenablagen von Tmux-, Vim- und lokalen Putty-Clients vollständig integriert, ohne dass Sie eine Maus berühren müssen! Dies war der einzige Weg, den ich finden konnte, um dies zu tun.


Wenn Sie dies auch für mehrzeilige Pasten zwischen Betriebssystemen verwenden, denken Sie daran, zwischen DOS / Unix-Zeilenenden zu konvertieren
Troy Fletcher

-1

Wenn Sie auf einem Windows-Computer arbeiten, funktioniert dies einwandfrei. Wenn Sie jedoch einen Linux-basierten Computer verwenden, funktioniert dies manchmal nicht. Kopieren Sie dazu einfach den Inhalt in einen beliebigen Texteditor und verwenden Sie die Tastenkombination Umschalt + Einfügen in der Zeile, in der Sie den Inhalt einfügen möchten.

Hoffe das würde helfen!

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.