Vim copy-paste di terminal

19

Vm yang biasa yankdan pastehanya berfungsi di jendela yang sama (tetapi berfungsi di seluruh file dan tutup / simpan perintah). Apakah mungkin untuk membuatnya bekerja di terminal (menarik dari jendela di satu terminal dan menempel di terminal lain) dan jika demikian, bagaimana?


sumber

Jawaban:

30

Mungkin hal yang paling sederhana bagi Anda untuk mencoba adalah untuk menempatkan set clipboard=unnameddi Anda .vimrcdan restart sesi vim Anda.

Ini memungkinkan Anda menjalankan yank(misalnya yy) di satu jendela, dan put(misalnya p) di jendela lain hanya akan berfungsi, karena semua sesi vim akan berbagi buffer pemilihan X yang sama.

Pada sisi negatifnya, buffer yank Anda akan ditimpa segera setelah Anda memilih beberapa teks di jendela lain dari aplikasi apa pun.

Sisi baiknya, ini juga berarti apa pun yang Anda tarik di vim sekarang dapat disisipkan ke aplikasi apa pun dengan mengklik tengah.

Jika Anda tidak menyukai cara itu, Anda dapat mengetik "+atau "*sebelum menarik Anda dan memberi perintah, misalnya "+yyuntuk menarik satu baris.

+Bentuk - bentuk berinteraksi dengan clipboard ( "+yseperti Ctrl+ C, "+pseperti Ctrl+ V).
The *bentuk berinteraksi dengan buffer seleksi ( "*yyang seperti klik kiri dan drag, "*pseperti klik tengah).

Lihat Membuat Pilihan GUI , dukungan pemilihan X11 , dan opsi clipboard dan mouse untuk detailnya.

Mikel
sumber
3
Ya Tuhan saya suka klik tengah. :)
Dan M.
set clipboard=unnamedtidak berfungsi untuk saya (saya letakkan di .vimrc dan restart semua sesi vim). Sayangnya, metode lainnya juga tidak. Sepertinya vim saya tidak dikompilasi dengan dukungan x. Saya menggunakan VNC untuk terhubung ke mesin linux dari mesin windows.
3
Ya, metode ini membutuhkan dukungan X11. Jalankan :echo has('x11'), jika dukungan X diaktifkan, ia akan mencetak 1.
Mikel
0

Jika Anda ingin menyalin seluruh file ke file target Anda.

Buka file target Anda di vim.

Letakkan kursor di tempat yang Anda inginkan dan ketikkan yang berikut ini:

:r /path_to_file/file.ext

Ini akan menyalin seluruh file ke tempat kursor Anda ...

tidak tahu
sumber