Bagaimana cara menyalin teks dari "layar" program ke clipboard saya?

13

Saya ingin menyalin beberapa teks dari layar ke clipboard saya. Saya tahu cara masuk ke mode salin dan tempel di layar, tapi saya ingin teks itu masuk ke clipboard saya sehingga saya bisa menempelkannya di browser, misalnya.

Bagaimana saya melakukan ini? Terima kasih!

Ramon Tayag
sumber

Jawaban:

8

Di sebagian besar program, Anda akan memilih teks dan tekan Ctrl+ Cuntuk menyalinnya. Menempelkan teks akan dilakukan dengan menekan Ctrl+ V. Dalam program emulator terminal, Ctrl+ Cmemiliki arti khusus, itu menginterupsi (berhenti) program secara default.

Program emulator terminal Anda mungkin memiliki pintasan lain yang ditetapkan. Sebagai contoh, Konsole dan Gnome Terminal menggunakan Ctrl+ Shift+ Cuntuk menyalin teks yang dipilih. Atau, pilih teks dan salin dengan menggunakan opsi Salin di menu Edit atau menu konteks.

Jika output dari program Anda besar, Anda mungkin ingin mengaktifkan buffer scrollback screen. Itu dapat dilakukan dengan menambahkan baris di bawah ini ke ~/.screenrcfile:

termcapinfo xterm ti@:te@
Lekensteyn
sumber
2
Ini tidak akan berfungsi jika teks yang Anda coba salin dari Layar GNU melebihi real estat layar sebenarnya
Marco Ceppi
Saya biasanya menggulir ke belakang kemudian (atau hanya melanjutkan menggulir sambil memilih).
Lekensteyn
Maksud Anda saat dalam mode Menyalin di layar?
Marco Ceppi
3
Tidak, saat memilih teks dalam mode biasa menggunakan mouse. Agar itu berfungsi, Anda perlu memasukkan termcapinfo xterm ti@:te@file ~ / .screenrc Anda untuk memungkinkan scrollback. Jika Anda belum punya .screenrc, dapatkan screenrc saya dari lekensteyn.nl/files/screenrc
Lekensteyn
Ah, begitu, terima kasih atas klarifikasi. Anda mungkin ingin menambahkan itu ke jawaban Anda.
Marco Ceppi
10

Untuk implementasi yang mentah dan kotor, instal paket xsel, yang memungkinkan interaksi baris perintah dengan X clipboard, lalu letakkan baris ini di~/.screenrc

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

lalu mulai kembali screen.

Sekarang, ketika Anda memilih sesuatu dalam screenmode copy / scrollback, dan menulis buffer paste ke file dengan C- a >, Anda dapat pindah ke browser dan menempelkan konten clipboard seperti biasa (misalnya dengan Ctrl- V).

Untuk kebalikannya, salin sesuatu di browser Anda dengan Ctrl- C, lalu buka screendan baca clipboard dengan perintah baru C- a y, lalu baca file pertukaran layar ke dalam buffer paste dengan C- a <, akhirnya tempel ke mana pun Anda inginkan dengan C- a ].

Agar ini berfungsi, variabel DISPLAYharus diatur dengan benar, dan Anda harus memiliki akses ke server X. Ini bukan masalah ketika Anda berada di terminal yang berjalan di server X yang sama, tetapi jika Anda menjalankan screendi terminal virtual, misalnya tty1, maka Anda mungkin perlu menjalankan xhost +di sisi X, dan export DISPLAY=:0atau yang serupa di terminal, sebelum memulai screen.

Seperti yang Anda lihat, ini tidak sederhana, dan bukan bukti peluru, tapi saya harap ini bisa membantu.

Jawaban ini sebagian terinspirasi dari sinkronisasi buffer layar GNU dan pemilihan X

enzotib
sumber
Ini xhost +saran yang mengerikan. Ini memungkinkan siapa pun di internet untuk membajak sesi X Anda, menangkap penekanan tombol, mengambil tangkapan layar, dll. Jangan pernah melakukannya. Ada cara yang benar untuk melakukan hal yang sama; selama Anda berada di host yang sama dan menggunakan homedir yang sama, pengaturan hanya $DISPLAYakan berfungsi.
R .. GitHub BERHENTI MEMBANTU ICE
0

Cukup gunakan operasi salin di aplikasi terminal Anda. Jika Anda menggunakan terminal gnome misalnya, cukup pilih tes dan gunakan menu konteks -> salin.

Michał Šrajer
sumber
1
Bagaimana jika aplikasi terminal tidak memiliki menu konteks? Bagaimana jika tidak memiliki operasi penyalinan? Saya tidak mengundurkan diri karena saya tidak percaya itu layak lebih dari satu.
djeikyb