Bagaimana cara menyalin output perintah di vim?


33

Misalnya, jika saya mengetikkan ' :pwd' untuk mendapatkan direktori kerja saat ini, saya dapat memilih teks dalam gvim tetapi saya tidak tahu bagaimana cara menyalinnya ke clipboard. Jika saya mencoba yang sama di konsol vim, saya bahkan tidak bisa memilihnya dengan mouse. Saya ingin ini bekerja dengan semua perintah vim, seperti set guifontmenyalin guifont=Consolas:h10:cANSIoutput.

Jawaban:


41

Apakah Anda mencari ini,

:redir @* | set guifont | redir END

: perintah redir mengalihkan output perintah ke register (@ *). Register @ * mengacu pada clipboard.

Untuk info lebih lanjut tentang ini,

:help :redir

tidak bekerja di vim-gtk petunjuk?
Sergio Abreu

@SergioAbreu coba @+alih-alih @*(yah, ia bekerja di gvim)
leeand00

10

Coba ' :r !pwd' untuk mendapatkan direktori kerja saat ini langsung ke file yang dibuka GVIM.
Anda kemudian dapat menyalinnya ke clipboard seperti halnya isi file teks lainnya dibuka di sana.


Ini berguna, tetapi bisakah saya menggunakan ini set guifontmisalnya?
Steven

Tidak, itu bukan perintah shell sehingga tidak akan berfungsi.
Kevin Panko

4

Untuk contoh khusus ini bisa Anda lakukan (perhatikan "!" Yang membuatnya melalui shell):

:!pwd | xclip

atau

:!pwd | xclip -selection secondary

(tergantung pilihan X mana yang Anda inginkan).

Anda mungkin harus menginstal xclip terlebih dahulu

sudo apt-get install xclip

(atau setara)


3

Jika Anda menjalankan vim dalam xterm, menahan tombol shift sambil memilih teks akan menyalin teks ke X yang setara dengan clipboard.


X memiliki dua clipboard (setidaknya); saran Anda akan menempatkan teks dalam pilihan PRIMARY (rekatkan dengan klik tengah) alih-alih hseleksi CLIPBOARD (rekatkan dengan Ctrl + V di sebagian besar aplikasi).
Marius Gedminas
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.