perpipaan non-destruktif dalam vim?


3

Apakah ada cara untuk menyalurkan teks yang dipilih melalui perintah eksternal dalam vim, tetapi tidak untuk mengganti teks yang dipilih dengan output? Kadang-kadang saya ingin menyalin sesuatu dalam buffer vim ke papan klip X, jadi saya menggunakan sesuatu seperti %!xclip - tetapi kemudian saya harus "membatalkan" perintah itu untuk mendapatkan teks kembali karena xclip tidak mengembalikan apa pun. Singkat penulisan skrip pembungkus di sekitar xclip yang juga menggemakan teks kembali, apakah ada cara yang lebih baik untuk melakukan ini?

Terima kasih!


Jika Anda menggunakan gvim, Anda dapat menyalin langsung ke clipboard X dengan register khusus +. "+yy menyalin baris saat ini ke papan klip. Anda juga dapat menggunakan pilihan visual.
Keith

Jawaban:


3

Dari pada %!xclip menggunakan

%w !xclip

Perhatikan jarak antar w dan !. Lihat

:help :w_c

1

Untuk menyalin ke clipboard, saya menggunakan

"*y

Untuk lebih lanjut tentang perbedaan antara "* dan "+, Anda ingin check out :h x11-selection. Bagi saya, yang berikut ini sepertinya relevan:

Xterm, secara default, selalu menulis pilihan yang terlihat oleh PRIMARY dan   CUT_BUFFER0. Ketika pasta, itu menggunakan PRIMARY jika ini tersedia, atau yang lain   jatuh kembali pada CUT_BUFFER0. Karena alasan ini, saat memotong dan menempel   antara Vim dan xterm, Anda harus menggunakan register "*. Xterm tidak digunakan   CLIPBOARD, dengan demikian "+ tidak bekerja dengan xterm.

Jadi saya akan bertahan "* dari pada "+ bahwa peth disebutkan, tetapi Anda sebaiknya menguji yang mana yang paling cocok untuk pola penggunaan Anda.


1
Ya, * daftar lebih dekat ke pertanyaan xclip menggunakan PRIMARY pemilihan secara default juga.
peth
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.