Pertanyaan Membuat teks Ctrl + C copy di gnome-terminal?


Apakah mungkin untuk saya buat Ctrl+C melakukan perintah penyalinan jika ada teks yang disorot di terminal?
Kalau tidak, harus mempertahankan perilaku normal.

(Jika ada terminal yang bisa melakukan ini selain gnome-terminal, itu juga mungkin bagus.)


59
2017-07-19 05:45


asal


Anda tidak harus menggunakan mouse; pada keyboard Mac yang dapat Anda gunakan shift+enter+fn. Dan, pada keyboard 'normal', saya pikir itu shift dan insert. - David Thomas
Saya mengkonfirmasi. Saya hanya menggunakan campuran lain dari copy-fu pada keyboard 'normal': Ctrl + Insert untuk menyalin (dan Shift + Insert untuk paste) yang tidak bertentangan dengan program interrupt Ctrl + C - konstantin.zaikin


Jawaban:


Anda dapat mengubah kunci pengikat untuk Potong dan Tempel dari default Ctrl+Bergeser+C, Ctrl+Bergeser+V untuk apa yang Anda katakan, yaitu Ctrl+C, Ctrl+V, dalam Edit → Pintasan Keyboard menu. Meskipun Anda juga harus mengubah arti terminal default yang terkait dengan Ctrl+C (interupsi), misalnya dengan cara ini

stty intr ^J

(Saya memilih Ctrl+J karena saya tidak ingat itu berhubungan dengan beberapa tindakan, tetapi Anda dapat membuat pilihan sendiri.)

Saya tidak berpikir itu mungkin untuk mempertahankan tindakan interupsi default untuk Ctrl+C hanya ketika tidak ada teks yang disorot.


66
2017-07-19 06:52



Seperti dicatat oleh @Pithikos dalam jawaban mangoDrunk, setelah memetakan ulang pintasan Salin ke Ctrl + C, Anda dapat menggunakan Ctrl + Shift + C untuk menyela tanpa harus mengkonfigurasi hal lain. - dubrox
Saya mengaturnya ke "Q readuse" yang biasanya "unfreeze / start" yang jarang digunakan, berbahaya dan lebih dekat ke CTRL. Jika seseorang memutuskan untuk melakukan ini juga, mereka tidak boleh lupa untuk memetakan kembali "mulai" pertama seperti: stty start ^ J - k3a


Ctrl + C sudah ditetapkan ke perintah lain, yang merupakan salah satu yang mengganggu program yang sedang berjalan di terminal Misalnya, ping www.google.com akan mulai melakukan ping ke Google sampai Anda memberitahukannya untuk berhenti. Cara Anda melakukannya, adalah dengan menekan Ctrl + C

Jadi, mereka tidak bisa begitu saja mengubah penugasan kombinasi itu.

Sorot teks yang ingin Anda salin, tekan Ctrl + Bergeser + C dan disalin ke papan klip. Ctrl + Bergeser + V dan Anda tempelkan.

Beritahu saya jika itu tidak berhasil ...


38
2017-09-25 21:19



Daripada mengatakan bahwa keybindings memiliki arti spesifik lainnya di terminal, mungkin lebih tepat untuk mengatakan bahwa berbagai aplikasi konsol berharap dapat menggunakannya, jadi jika emulator terminal tidak meneruskannya mungkin akan membuat aplikasi tersebut tidak dapat digunakan. . - James Henstridge
OS X sedikit lebih pintar: ketika beberapa teks dipilih menafsirkannya Ctrl+C sebagai salin dan ketika tidak ada teks yang dipilih menafsirkannya sebagai interupsi. - Behrang
Sebenarnya, OS X tidak lebih pintar. Pintasan keyboard salin adalah Cmd-C, bukan Ctrl-C. - Andrei Maxim


Terlepas dari apa yang dikatakan @Dan, ada pilihan lain untuk teks copy-paste di Linux yang saya temukan jauh lebih cepat dan lebih mudah digunakan, karena tidak perlu swich dari mouse (yang Anda gunakan untuk melakukan pemilihan) ke keyboard :

  • memilih teks dengan menyalinnya ke clipboard
  • pasta klik-tengah itu.

Fitur ini sangat berguna di terminal, misalnya ketika merakit sebuah perintah dari bit-bit teks yang sudah ada di layar.

Ini berfungsi di semua aplikasi, jadi mungkin untuk menyalin-menempel teks dari halaman web ke terminal dll.

Buffer papan klip yang digunakan untuk copy-paste klik-tengah terpisah dari yang digunakan untuk Ctrl-C / Ctrl-V, yang memungkinkan untuk memiliki dua bit berbeda dari teks yang disalin pada saat yang sama.


27
2017-09-26 01:28





Seperti yang sudah disebutkan, Ctrl + C biasanya digunakan untuk menginterupsi suatu program. Tetapi alih-alih menggunakan Ctrl + Bergeser + C untuk menyalin, yang saya lakukan lebih sering daripada mengganggu proses, saya mengubah pengaturan untuk memiliki Ctrl + C untuk menyalin dan Ctrl + Bergeser + C untuk mengganggu.

Anda dapat melakukan ini di Terminal GNOME dengan masuk ke "Edit" -> "Pintasan Keyboard ..." dan petakan tindakan "Salin" ke Ctrl + C dan "Tempel" ke Ctrl + V. Perintah interupsi secara otomatis akan dipetakan kembali Ctrl + Bergeser + C.


21
2017-09-26 03:09



Tetapi bagaimana saya kemudian memetakan Ctrl + Shift + C untuk mengganggu proses? - kramer65
Itu terjadi secara otomatis untuk saya. Semua yang saya lakukan adalah mengatur Salin ke Ctrl + C dan setelah menyimpan itu, Ctrl + Shift + C menjadi mengganggu. - mangoDrunk
@mangoDrunk alasannya adalah bahwa memegang Shift + Ctrl + <key> pada dasarnya mencetak karakter yang sama dengan Ctrl + <key>. Anda dapat menguji dengan read - Pithikos
Saya sarankan melakukan ini karena saya menyalin BANYAK lebih banyak daripada saya mengganggu proses dan mudah diingat ctrl + shift + C sebagai interupsi daripada mengubah kebiasaan saya menyalin yang sama di tempat lain. - flyingdrifter


Untuk membuat cut and paste (Ctrl+V, Ctrl+C) bekerja di konsol atau terminal, masukkan kode berikut ke terminal untuk mengubah binding kunci secara otomatis:

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/copy "<Control>c"

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"

2
2018-06-09 04:47





Maaf telah menulis jawaban tentang hal ini, sepertinya saya menghabiskan terlalu banyak reputasi saya karena dapat mengirim komentar.

Tidak ada cara untuk mengubah perilaku pintas keyboard tergantung pada apakah ada pilihan teks atau tidak, dan saya akan menghindari penugasan kembali Ctrl-C terminal.

NAMUN, Anda dapat dengan mudah terbiasa

  • Ctrl+Ins untuk menyalin
  • Bergeser+Ins untuk menempel

Ini berfungsi praktis di mana saja (kecuali di Nautilus, menghela napas), dan hampir tidak pernah mengganggu apa pun!


1
2017-11-03 14:13





Apakah seseorang menginginkan Anda dapat menggunakan:

> stty intr ^K         # free Ctrl+C for copy use Ctrl+K instead
> stty lnext ^-        # free Ctrl+V for paste use ^- instead
> stty -g
> stty -g > ~/.stty    # store the settings in home directory

Tambahkan yang berikut ini ke ~/.bashrc

case $- in
 *i*)
   stty `cat ~/.stty`     #  reload the stored stty settings
   bind -u quoted-insert  #  unbind the quoted-insert function of bash - free Ctrl+V for paste
esac

Dan kemudian gconf editor atau entah bagaimana mengubah keybindings terminal ke CTRL+C untuk Salinan dan CTRL+V untuk tempel.


1
2018-06-06 19:57



Argh ... formasinya disetir. Lihat: sandipchitale.blogspot.com/2008/10/… - Sandip Chitale