PuTTY come selezionare il testo e copiarlo SOLO con la tastiera


75

Esiste un modo per selezionare un testo con la tastiera come lo faccio normalmente usando Maiusc + frecce.


Penso che sia impossibile. :(
Lucas Jones,

Non capisco. Maiusc e frecce sono sulla tastiera.
Scott,

Risposte:


71

Dal manuale PuTTY :

Il copia e incolla di PuTTY funziona interamente con il mouse. Per copiare il testo negli Appunti, è sufficiente fare clic con il pulsante sinistro del mouse nella finestra del terminale e trascinare per selezionare il testo. Quando si rilascia il pulsante, il testo viene automaticamente copiato negli Appunti. Non è necessario premere Ctrl- Co Ctrl- Ins; infatti, se si preme Ctrl- C, PuTTY invierà un carattere Ctrl- Cdurante la sessione al server dove probabilmente causerà l'interruzione di un processo.


9
La mia linea è lunga 24k caratteri. Come posso copiarlo? Riesco a vedere solo l'ultima parte della riga o la prima parte sul buffer dello schermo.
Gaʀʀʏ

@ Gaʀʀʏ So che sei passato a lungo da questo commento, ma vorrei solo notare che se ho una linea 24k da copiare, penso che l'opzione 'Copia tutto negli Appunti' sia giustificata. È certamente quello che definirei un caso limite.
Sean Allred,

@ Gaʀʀʏ, per aggiungere alla risposta di Sean, la copia proviene dal buffer del terminale e non dallo stdout. Per linee molto lunghe è certamente possibile che la linea abbia traboccato il buffer stesso.
ysap

3
Maiusc + Inserisci.
phocks

26

per quanto ne so, non c'è modo di copiare un'area selezionata dalla finestra dello stucco negli Appunti di Windows senza usare il mouse. esiste una richiesta di funzionalità sul sito dello stucco specifica per questa funzionalità.

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

l'unico modo per copiare le informazioni dalla finestra dello stucco negli Appunti di Windows con una scorciatoia da tastiera è utilizzare il menu di sistema dell'app "copia tutto negli Appunti" (che puoi invocare da alt-spazio, purché tu abbia impostato "Finestra> Comportamento> Il menu di sistema appare sull'opzione ALT-Spazio "configurata in mastice.

Incollare dagli Appunti di Windows in mastice può essere fatto con Shift- Insert.

Se devi copiare e incollare solo all'interno della finestra del terminale stesso, fai riferimento alla pagina man per la shell che stai usando o considera l'utilizzo dell'app "schermo" unix ("schermata uomo" per maggiori informazioni), che consente la selezione del testo per copia / incolla nella finestra del terminale (simile a come funziona la copia / incolla di vi). un estratto dalle pagine man:

   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 - Funziona bene per me. Sorprendente che quel biglietto sia stato depositato oltre 13 anni fa e nessuno si è ancora preso la briga di farlo.
ArtOfWarfare il

Il link funziona ora.
xgMz

25

control+ insert= copia

shift+ insert= incolla


2
Non so perché questo sia stato sottoposto a downgrade. È l'unica risposta che ha funzionato per me. Sono stato in grado di creare uno script AutoHotkey che copia il testo da GVim in Windows, lo incolla su Putty e lo esegue in una sessione interattiva IPython
rsoren,

2
control+ insertsembra non fare assolutamente nulla. shift+ però insertincolla.
ArtOfWarfare il

3
A partire dal 2016, funziona con Windows 7 e Putty 0.63. Tuttavia, la domanda sembra includere l'impostazione della selezione per la copia e AFAICT.
stefanct,

3
@rsoren: l'OP richiede un metodo solo tastiera. Questa risposta richiede innanzitutto di contrassegnare con il mouse. In base alla risposta selezionata, una volta contrassegnata, <Ctrl + Ins> è implicito.
ysap

Non funziona per me su Windows 7
SherylHohman,

3

Per aggirare questo problema, eseguire PuTTY in una sostituzione della console di Windows come ConEmu o SuperPutty .


1
Come si fa in SuperPutty?
Grokster,

@sathya come funziona? che cosa ha la superpotenza rispetto allo stucco?
alpha_989

@ Michael-Hampton .. ConEmu ti permette di incollare dagli Appunti di Windows al Terminale di Windows solo con la tastiera?
alpha_989,

2

Uso lo schermo GNU,

Ho anche questo nel mio screenrc per giocare bene con Vim:

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

Un mio amico ha un gancio nello schermo per copiare gli "appunti schermo" su uno o entrambi gli x appunti (selezione o appunti) e credo che Putty faccia le traduzioni necessarie. Proverò a scavare.

Probabilmente puoi organizzare la stessa cosa con xclip, l'incantesimo che stai cercando dovrebbe usare xclip -selection clipboard

Verificherei rapidamente per vedere se xclip -selection clipboard -osputa il contenuto degli appunti.


Vorrei che funzionasse in PuTTY! Provai. Si lamentava di "impossibile aprire il display"
Brian Peterson

L'uso xclipdovrebbe funzionare. Uso tmuxe xselcopio da Puty usando le tastiere .. Devo ancora capire come incollare nel terminale di Windows con la tastiera
alpha_989

2

Questo può essere più una soluzione alternativa che una soluzione.

All'interno di vim, se vuoi copiare un blocco che hai selezionato in modalità visiva (di solito un blocco che si estende su molte pagine), puoi scriverlo su un file (digitando :w filename.txtmentre il testo è selezionato e mentre sei ancora in modalità visiva ). Dopo averlo fatto, puoi:

  1. Apri il file in un editor di Windows se è montato su Samba
  2. Leggi il contenuto del file tramite Apache o un server FTP
  3. Email il file come allegato (vedi comando sotto - richiede Mutt):

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

Personalmente preferisco l'opzione 1.


2

Un altro suggerimento un po 'improvvisato è quello di attivare i tasti del mouse in Windows. In Windows 7 è sotto il centro di accesso facilitato.

  1. Fai clic su "Rendi il mouse più facile da usare".
  2. Seleziona la casella "Attiva i tasti del mouse".
  3. Fare clic su "Imposta chiavi del mouse" per ulteriori impostazioni.

Il tasto di scelta rapida Tasti del mouse predefinito è Alt+ Shift+ NumLock.

Spero che colpire questa combinazione di tasti non interferisca con la sessione (o semplicemente Alt+ Tabout e attivarla dall'esterno). Credo che premere 0 sul tastierino numerico inizi a bloccare i clic, permettendoti di trascinare sulla porzione di testo che desideri evidenziare / copiare.


2

Ero stanco di scorrere riga per riga tramite il tasto sinistro del mouse per copiare l'output della sessione. Ma ora, devo fare clic due volte sul pulsante centrale ; prima all'inizio e seconda alla fine. Come ho fatto:

  1. Vai alla finestra di configurazione Putty
  2. Scegli "Selezione" dalla categoria a sinistra della finestra.
  3. Sotto "Controlla l'uso del mouse", seleziona "Compromesso (estensioni centrali, paste di destra)" se non è già stato scelto.

2
Si prega di leggere e farsi capire la domanda e quindi provare a rispondere.
Renju Chandran Chingath,

Questo è il modo migliore per selezionare e Putty si occupa della copia. Per copiare più di una schermata di testo, tuttavia, penso che tu debba praticamente usare cat invece. vi continua a muovere il cursore.
Noumenon,

1

Ci ho lavorato per un po 'e Putty stesso non può farti copiare solo con gli appunti.

Tuttavia, Putty può facilitare la trasmissione inversa dei dati dal lato remoto. Se si utilizza uno strumento come Vim o Tmux per effettuare selezioni di testo basate su tastiera, è possibile scaricare l'output in un file e (risalire qui) Netcat in un tunnel di porta inversa dello stucco in un servizio locale che scarica l'input nel locale clipboard.

Ho realizzato un video su come eseguire questa operazione qui: https://www.youtube.com/watch?v=RI79eeCuyvE , ma ecco la versione breve:

Imposta il tuo mastice> connessione> SSH> tunnel per inoltrare R11311 a localhost: 1234 Usa netcat come server di ascolto che invia l'output al comando clip di Windows 10 che invia input agli Appunti di Windows. Avvolgi questo in un ciclo eterno per così:

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

Esegui quanto sopra in un prompt dei comandi che esegui come amministratore, perché stai proponendo una porta.

Sul server remoto * nix, è necessario utilizzare vim o Tmux per inviare selezioni di testo a un file.

Utilizzare un comando per inviare la selezione del testo a un file

tmux save-buffer ~/.clipboard

In alternativa, è possibile utilizzare Vim per salvare un buffer (in questo caso, z) in un file

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

Integro il vim e tmux appunti utilizzando il file .clipboard come intermediario utilizzando una funzione vim Gist .

Una volta che la selezione del testo è nel file, è possibile reindirizzare l'output sul lato remoto della porta in avanti:

cat ~/.clipboard | nc 127.0.0.1 11311

O dentro una sceneggiatura di VIM

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

Si noti che la e commerciale è necessaria perché non sono riuscito a far -q 0funzionare correttamente il flag di netcat . Forse puoi. Senza funzionare, attende un secondo intero prima di chiudere, il che può interrompere il flusso del tuo lavoro. Con la e commerciale abbandona immediatamente il processo, che si completa in 1 secondo in background.

Fare tutto quanto sopra integrerà completamente Appunti client Tmux, Vim e putty locali senza toccare un mouse! Questo è stato l'unico modo in cui sono riuscito a trovarlo.


Inoltre, se lo usi per paste multilinea tra sistemi operativi, ricorda di convertire tra terminazioni di linea DOS / Unix
Troy Fletcher,

-1

Se sei su una macchina Windows funzionerà bene, ma se nel caso di una macchina basata su Linux a volte non funzionerà. Per farlo funzionare basta copiare il contenuto su qualsiasi editor di testo e basta usare il tasto Maiusc + Inserisci nella riga in cui si desidera incollarlo.

Spero che questo possa aiutare!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.