Ketika saya menyalin sesuatu ke clipboard dan menekan Ctrl+ Vdi Bash, tidak ada yang terjadi; Namun, mengklik kanan dan memilih Tempel berhasil .
Mengapa? Apakah ada masalah yang masuk akal (saya yakin ada) di balik perilaku ini di Linux?
linux
bash
keyboard-shortcuts
copy-paste
Yasser Zamani
sumber
sumber
Shift
-Insert
Juga berfungsiCtrl-Shift-V
, secara pribadi.Jawaban:
Pada masa terminal fisik , clipboard seluruh sesi tidak ada, hanya beberapa program yang mendukung copy / paste internal - seringkali dengan nama "buffer" atau "kill rings" - dan menggunakan berbagai penekanan tombol yang berbeda. Misalnya, bash shell menggunakan CtrlKatau CtrlUuntuk "membunuh" (memotong), CtrlYuntuk "menarik" (tempel); ini berasal dari para emacs redaksi .
CtrlChampir di semua tempat di Unix adalah kunci "interupsi" , yang digunakan untuk membatalkan program atau operasi saat ini. The CtrlVkey sering berarti "insert verbatim" - yaitu, masukkan karakter berikut harfiah tanpa melakukan tindakan apapun terkait. Misalnya, normal Escberalih ke mode perintah di editor vi , tetapi CtrlV, Escakan memasukkan
ESC
karakter ke dalam dokumen.Penggunaan CtrlCuntuk menyalin dan CtrlVmenempel dari clipboard seluruh sesi diperkenalkan oleh Mac OS pada tahun 1983 dan Microsoft Windows 3.x pada tahun 1990. (Versi Windows sebelumnya (1.x dan 2.x), serta IBM OS / 2 , hanya mendukung kunci CUA IBMCtrlIns untuk menyalin dan ShiftInsmenempel; pintasan ini tetap didukung oleh semua versi Windows.)
Ketika GUI dengan dukungan clipboard akhirnya mencapai Unix, Ctrlpenekanan tombol sudah digunakan oleh banyak program terminal. Selain itu, antarmuka grafis X memiliki mekanisme yang agak berbeda : "seleksi" dan "potong buffer". Bahkan sekarang Anda dapat memilih teks dalam satu program dan menyisipkannya menggunakan tombol tengah mouse, tanpa tindakan penyalinan eksplisit.
Singkatnya, pada saat Xterm dan Terminal GNOME ditulis (saya kira Anda menggunakan yang terakhir), CtrlV sudah memiliki arti yang sangat berbeda selama bertahun-tahun dan tidak dapat diubah. Selain itu, metode alternatif menyalin teks - "seleksi" - sudah ada di X11, jadi tindakan salin / tempel eksplisit mungkin dianggap tidak sepenting seperti di Windows. Ini berarti bahwa berbagai pintasan keyboard harus dipilih - misalnya, sebagian besar program terminal modern, seperti Terminal GNOME, menggunakan CtrlShiftCdan CtrlShiftV. (Jika Anda menggunakan Xterm, pintasan yang sama dapat ditambahkan secara manual menggunakan XTerm * vt100 * terjemahan Xresource. Rxvt tidak memiliki opsi seperti itu.)
(Kebanyakan toolkit X11 juga mendukung kunci "copy" dan "paste" CUA, yang tidak bertentangan dengan program terminal. Sayangnya, implementasinya agak tidak konsisten - CtrlInssalinan ke "clipboard" di sebagian besar program (GTK, Qt4, tetapi diabaikan oleh Namun, ShiftInspasta dari "pemilihan utama" di sebagian besar program GTK dan Qt4, tetapi dari "clipboard" di Firefox, dan dari buffer cut yang sudah usang di Xaw yang sekarang usang.)
Semua yang mengatakan, beberapa terminal atau konsol (khususnya, Windows 10 konsol) melakukan mendukung kunci ini. Karena konsol Windows selalu memiliki mode "tandai / pilih" yang terpisah, CtrlCkini juga memiliki dua makna berdasarkan konteks - dalam mode biasa ia mengirimkan interupsi, dalam mode pilih, ia menyalin ke clipboard (seperti Enterdulu).
Sementara itu, alat baris perintah Windows tidak pernah benar-benar digunakan CtrlV untuk apa pun, jadi ia terikat untuk "menempel" tanpa mengganggu banyak hal. Melakukan hal yang sama pada terminal seperti Unix akan lebih bermasalah.
sumber
<C-v>
kei
dalam versi 3, tetapi saya tidak tahu mengapa .Gunakan CtrlShiftVuntuk menempel.
Ctrl dengan karakter lain biasanya digunakan oleh shell untuk fungsi khusus.
sumber
bash
sendirinya. Jika Anda pernah berada di luar lingkungan GUI, atau jika Anda menggunakan emulator istilah lain, ini mungkin tidak akan berfungsi. Jangan menganggap perintah ini portabel.Berikut ini adalah pengaturan umum untuk penyalinan dengan terminal populer:
gnome-terminal (paling populer di Linux)
Salin : CtrlShiftC
Tempel : CtrlShiftV
Catatan : Select-to-copy dan middle-clickpaste juga berfungsi, tetapi menggunakan clipboard alternatif.
Putty (terminal paling populer di Windows)
Salin : (pilih dengan mouse, tidak ada interaksi keyboard)
Paste : Right-click (atau lebih andal: shiftRight-click)
Catatan : Aplikasi yang mengambil masukan mouse (seperti
vim
danlinks
) dapat mencuri Right-click- shiftRight-clickakan selalu bekerja dalam aplikasi apapun.Salinan Terminal OSX : AppleC
Tempel : AppleV
Catatan: Aplikasi yang mengambil kontrol mouse (seperti
vim
danlinks
) dapat mengesampingkan apa artinya memilih teks, dalam hal ini penyalinan tidak akan berfungsi seperti yang Anda harapkan. Dalam kasus itu, tahan Controlsambil menyeret mouse untuk memilih. Interaksi mouse dengan aplikasi dinonaktifkan secara default di pengaturan terminal Anda, sehingga kebanyakan orang bahkan tidak akan tahu tentang ini.sumber
cmd.exe
lebih populer daripada Putty di Windows? :-)cmd.exe
ini bukan terminal SSH. Itu benar sekali.cmd.exe
(dan merupakan satu-satunya jalan di sana, jika Anda tidak ingin membuka menu> edit> tempel) dalam mode edit cepat . Tidak ada pintasan di command prompt pra-win10Merupakan tradisi yang mengakar kuat bahwa Ctrlkunci bersama dengan huruf menghasilkan karakter kontrol ASCII yang ditemukan dengan mengurangi 64 dari nilai ASCII huruf besar. Perhitungan ini memetakan Ctrl- Ake 1, dan seterusnya. Misalnya Ctrl- Iadalah Tabdan Ctrl- Jadalah linefeed.
Tidak ada tradisi serupa untuk Ctrl- Shift. Ctrl- Shift- Vtidak diharapkan untuk menghasilkan karakter spesifik apa pun.
Emulator terminal harus mendukung tradisi dengan secara transparan melewati Ctrlkonvensi, membiarkannya muncul sebagai input karakter ke program yang dioperasikan melalui jendela terminal itu. Program berbasis terminal memetakan kunci kontrol ke perintah. Misalnya, Bash menggunakan Ctrl- Vsebagai perintah yang berarti "ambil karakter berikutnya secara harfiah". Ini memungkinkan Anda untuk menanamkan karakter kontrol di baris perintah. Jika terminal mencuri kunci kontrol untuk penggunaannya sendiri, perintah seperti itu menjadi tidak tersedia. Jadi mencegat Ctrl- Vuntuk fungsi-meta keluar dari pertanyaan (setidaknya dalam konfigurasi default).
Namun, emulator terminal bebas untuk mencegat Ctrl- Shift- Vyang tidak diharapkan menghasilkan karakter. Ctrl- Shift- Vbukan standar; itu adalah hal Terminal Gnome (yang mungkin ada di beberapa terminal lain).
Pada desktop Unix berbasis X konvensi adalah bahwa tidak ada perintah yang diperlukan untuk menyalin. Anda tinggal memilih teks. Dan tombol tengah menempel teks itu di tempat lain. Anda akan menemukan bahwa ia berfungsi di Xterm, Gnome Terminal dan Firefox.
Ctrl- Vadalah konvensi Microsoft Windows, yang merupakan tiruan dari Apple- Vdari Macintosh.
sumber
<kbd>
tag ini di posting mendatang.Ctrl-A
adalah1
. Bagaimana saya bisa mencoba ini? Terminal Gnome saya tidak melakukan apa-apa ketika saya menekanCtrl-A
.Bagi saya, cara paling sederhana untuk menyalin paste di shell adalah:
Pilih kode yang Anda inginkan dan lalu lewati dengan mengklik mouse-middle-key
sumber
xdotool click 2
untuk meniru klik tombol ketiga untuk Anda. Kemudian, di lingkungan window manager / desktop apa pun yang Anda gunakan, Anda dapat mengikat skrip ini ke kunci - katakanmod
i
(untuk disisipkan) atau apa pun ikatan kunci yang mungkin Anda miliki (atau apa pun mod yang mungkin berarti - yang benar-benar tergantung di mana Anda mengikat ini)Kita dapat menggunakan tombol keyboard insert untuk melakukan salin dan tempel (Di keyboard yang lama bisa hilang)
Salin : CtrlInsert
Tempel :CtrlShiftInsert
sumber
Anda juga dapat menggunakan tombol tengah mouse jika Anda merasa malas dan memilih perintah dari dokumen teks, skrip atau web atau forum. setelah Anda memilih perintah yang dimaksud cukup pindah ke terminal Anda dan klik tombol tengah pada mouse. Saya menggunakan metode ini karena saya menggunakan puppy linux yang sepertinya tidak mendukung perilaku normal klik kanan dan tempel. itu di jendela penangan file, hanya saja tidak di jendela terminal. nggak tahu kenapa tapi saya cukup senang saya mengetahui tentang metode tombol tengah, sangat berguna! ;-)
sumber