Jawaban:
Anda harus menggunakan pintasan tmux. Dengan asumsi pintasan perintah tmux Anda adalah default: Ctrl+ b, lalu:
Ctrl+ b, [Masuk ke mode salin (?).
Pindah ke mulai / akhir teks untuk menyorot.
Ctrlspace
Mulai menyorot teks (di Arch Linux). Ketika saya telah mengkompilasi tmux dari sumber di OSX dan Linux lain, Spacebiasanya dengan sendirinya berfungsi. Teks yang dipilih mengubah warna, jadi Anda akan tahu jika perintahnya berhasil.
Pindah ke ujung teks yang akan disalin.
Alt+ wMenyalin teks yang dipilih ke tmux clipboard. (Di Mac gunakan Esc+ w.)
Pindahkan kursor ke panel tmux yang berlawanan, atau jendela tmux yang sama sekali berbeda. Letakkan kursor di tempat Anda ingin menempelkan teks yang baru saja Anda salin.
Ctrl+ b, ]Tempel teks yang disalin dari clipboard tmux.
tmux cukup baik dalam memetakan perintah ke pintasan keyboard khusus.
Lihat Ctrl+ b, ?untuk daftar lengkap pintasan keyboard yang ditetapkan.
screen
pintasan: Ctrl + A [
(masukkan mode salin), Space
(mulai sorot), Enter
(sorot akhir), Ctrl + A ]
(tempel).
Enter
kunci.
Sayangnya, saya belum bisa menambahkan komentar pada jawaban Alex Leach jadi saya akan memasukkan addendum di sini untuk pengguna Mac OS X:
byobu
/ tmux
dengan semua pengaturan default, ini berfungsi, Alt + w tidak.
Jika Anda menggunakan vim dan tmux pada macOS (Diuji pada macOS 10.12.2, tmux 2.3):
(Asumsikan bahwa kombinasi kunci awalan dari tmux adalah prefix. Awalan adalah ctrl+ bsecara default.)
Saya terhubung ke server CentOS saya pada mesin Windows menggunakan klien ssh terminal ZOC . Inilah yang bekerja untuk saya:
<prefix>
+[
<Space>
<Enter>
<prefix>
+]
Anda dapat menggunakan papan klip sistem dengan "* y dan" * p alih-alih y dan p normal.
"+2yy
- salin dua baris ke papan klip X11 "+dd
- potong baris ke papan klip X11 "+p
- tempel papan klip X11
h,j,k,l
untuk Saya juga kadang melihat di VM ubuntu saya, register "+" menghilang, untuk alasan yang tidak diketahui. Untuk memverifikasi bahwa Anda memiliki +
register, Anda dapat mengetik :reg
dan memeriksa apakah ada string "+
di kolom pertama.
y
dan p
ke "+y
dan "+p
?
Jika sudah vim
terbuka, lebih baik menggunakan vim copy paste untuk menyalin teks.
Tmux copy paste akan berfungsi, namun ada beberapa kelemahan.
Pertama, ketika menyalin beberapa baris teks, Anda harus memilih beberapa baris. Tmux copy paste biasanya tidak mengerti yang vim
memiliki nomor baris atau ada tanda di selokan vim (seperti angka relatif / angka absolut). Akibatnya, itu akan menyalinnya juga.
Kedua, saya telah menemukan bahwa jika teks memiliki format bahasa tertentu, dan Anda langsung mencoba menyalin paste menggunakan tmux ke vim, itu akan mengacaukan format. Ini bisa dihindari dengan menggunakan set paste!
. Namun, ini membutuhkan lebih banyak pekerjaan.
"+y
untuk menyalin dan "+p
menempelVim
native menyediakan metode untuk menyalin tempel antara buffer vim dan clipboard sistem, menggunakan salah satu "+y
atau "*y
. Kemudian menempel menggunakan "+p
atau "*p
. Ini akan menghindari menyalin nomor relatif di selokan atau tanda acak lainnya yang tidak relevan dengan vim
Beberapa opsi untuk penggunaan vim karena urutan pintasan tmux agak panjang dan saya merasa sulit untuk diingat
Seperti jawaban di atas, Anda dapat menggunakan "+y
dan "*y
menyalin dan kemudian "+p
dan "*p
masing - masing untuk menempel. Jika Anda ingin vim menggunakan clipboard secara default sehingga Anda bisa y/p
langsung menggunakannya .
set clipboard=unamed "sets the default copy register to be *
set clipboard=unamedplus "sets the default copy register to be +
sumber untuk perintah clipboard: https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
:w /tmp/lines
,, lalu:r /tmp/lines
dalam contoh lain). Atau, jika Vim Anda tahu cara berbicara dengan clipboard sistem Anda, Anda bisa menggunakan+
atau*
mendaftar untuk menghindari file sementara.