Come copio il testo dalla "schermata" del programma negli appunti?


13

Voglio copiare del testo dallo schermo negli appunti. So come entrare nella modalità copia e incolla sullo schermo, ma voglio che quel testo vada negli appunti in modo da poterlo incollare sul browser, ad esempio.

Come faccio a fare questo? Grazie!

Risposte:


8

Nella maggior parte dei programmi, selezionare il testo e premere Ctrl+ Cper copiarlo. Incollare il testo sarebbe fatto premendo Ctrl+ V. Nel programma di emulazione terminale, Ctrl+ Cha un significato speciale, per impostazione predefinita interrompe (arresta) i programmi.

Il programma dell'emulatore di terminale potrebbe avere altre scorciatoie definite. Ad esempio, Konsole e Gnome Terminal usano Ctrl+ Shift+ Cper copiare il testo selezionato. In alternativa, selezionare il testo e copiarlo utilizzando l' opzione Copia nel menu Modifica o nel menu contestuale.

Se l'output del tuo programma è grande, potresti voler abilitare il buffer di scrollback di screen. Ciò può essere fatto aggiungendo la riga seguente al ~/.screenrcfile:

termcapinfo xterm ti@:te@

2
Questo non funzionerà se il testo che stai tentando di copiare dallo schermo GNU supera il valore reale dello schermo
Marco Ceppi

Di solito scorro all'indietro (o semplicemente continuo a scorrere mentre seleziono).
Lekensteyn,

Intendi mentre sei in modalità Copia sullo schermo?
Marco Ceppi

3
No, quando si seleziona il testo in modalità normale usando il mouse. Perché funzioni, devi inserire il termcapinfo xterm ti@:te@tuo file ~ / .screenrc per consentire lo scrollback. Se non hai .screenrc, prendi il mio screenrc da lekensteyn.nl/files/screenrc
Lekensteyn

Ah, allora è tutto, grazie per il chiarimento. Potresti volerlo aggiungere alla tua risposta.
Marco Ceppi

10

Per un'implementazione grezza e sporca, installa il pacchetto xsel, che consente l'interazione della riga di comando con gli Appunti X, quindi inserisci queste righe nel tuo~/.screenrc

bind > eval writebuf "exec sh -c 'xsel -nbi </tmp/screen-exchange'"
bind y eval "exec sh -c 'xsel -bo >/tmp/screen-exchange'"

quindi riavviare screen.

Ora, quando selezioni qualcosa in screenmodalità copia / scorrimento e scrivi incolla buffer in un file con C- a >, puoi spostarti sul browser e incollare il contenuto degli appunti come al solito (ad esempio con Ctrl- V).

Per il contrario, copia qualcosa nel tuo browser con Ctrl- C, quindi vai a screene leggi gli appunti con il nuovo comando C- a y, quindi leggi il file di scambio di schermate nel buffer di incollaggio con C- a <, infine incolla dove vuoi con C- a ].

Affinché ciò funzioni, la variabile DISPLAYdeve essere impostata correttamente ed è necessario avere accesso al server X. Questo non è un problema quando ci si trova su un terminale in esecuzione sullo stesso server X, ma se si esegue screenin un terminale virtuale, ad esempio tty1, potrebbe essere necessario eseguire xhost +sul lato X, export DISPLAY=:0o simile sul terminale, prima di iniziare screen.

Come vedi, non è semplice e non a prova di proiettile, ma spero che possa aiutarti.

Questa risposta è in parte ispirata dalla sincronizzazione del buffer di incollatura dello schermo GNU e della selezione X.


È un xhost +consiglio terribile. Permette a chiunque su Internet di dirottare la sessione X, catturare i tasti, scattare schermate, ecc. Non farlo mai . Esistono modi corretti per fare la stessa cosa; purché tu sia sullo stesso host e utilizzi lo stesso homedir, l'impostazione $DISPLAYdovrebbe funzionare.
R .. GitHub smette di aiutare ICE il

0

Basta usare l'operazione di copia nella propria applicazione terminale. Se ad esempio stai usando gnome-terminal, seleziona test e usa il menu contestuale -> copia.


1
Cosa succede se l'applicazione terminale non ha un menu di scelta rapida? E se non avesse un'operazione di copia? Non ho votato a fondo perché non credo che meriti più di uno.
djeikyb,
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.