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.

Steven
sumber

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
asdfg
sumber
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.

nik
sumber
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)

nisc
sumber
3

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

garyjohn
sumber
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