Saya dapat menyimpan file, menyalin dan menempelkan teks dengan tombol tengah atau shift-insert.
Bagaimana saya bisa menyalin teks dalam vim dan menempelnya dari clipboard sistem?
:!sed -n 5,10p %
:!cat %
Saya dapat menyimpan file, menyalin dan menempelkan teks dengan tombol tengah atau shift-insert.
Bagaimana saya bisa menyalin teks dalam vim dan menempelnya dari clipboard sistem?
:!sed -n 5,10p %
:!cat %
Jawaban:
Anda harus memiliki Vim dengan clipboard
dan xtermclipboard
fitur disusun dalam. Di Ubuntu, ini hanya tersedia dengan paket vim GUI ( vim-gnome
, vim-gtk
, vim-athena
, dll).
Setelah Anda menginstal salah satunya, Anda dapat menyalin ke (dan menempel dari) register clipboard ( *
dan +
). Dari posting yang sangat informatif tentang Vi dan Vim ini :
Untuk sistem berbasis X11 (mis. Linux dan sebagian besar sistem mirip UNIX lainnya ) ada 2 clipboard, yang tidak tergantung satu sama lain:
- PRIMARY - Ini adalah copy-on-pilih, dan dapat ditempelkan dengan tombol tengah mouse.
- CLIPBOARD - Ini disalin dengan (biasanya)
^C
, dan ditempel dengan^V
(Ini seperti MS Windows).
Vim memiliki 2 register khusus yang sesuai dengan clipboard ini:
*
menggunakan PRIMARY; mnemonic: s tar adalah s elect (untuk copy-on- s elect)+
menggunakan CLIPBOARD; mnemonic: CTRL + C (untuk keybind umum)
Untuk menyalin ke register, Anda mendahului perintah copy ( y
) dengan "
dan nama register ( *
, misalnya). "*y
, lalu klik tengah untuk menempel, atau "+y
dan ShiftInsertmenempel.
Solusi yang cukup menarik berasal dari pertanyaan ini . Instal xclip, kemudian salurkan output dari perintah ke xclip ( cat file | xclip -selection clipboard
misalnya), lalu tempel di mana saja, (jika itu di terminal - gunakan Ctrl ShiftV
). Sekarang, ternyata Anda sebenarnya dapat mempersingkat perintah itu xclip -sel clip
, yang tidak terlihat jelas dari membaca halaman manual atau contoh di sana.
/dev
, tetapi teks masih tersimpan di suatu tempat, bukan?
Saya mengalami masalah karena vim saya tidak mendukung clipboard :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Saya menginstal vim-gnome (yang mendukung clipboard) dan kemudian memeriksa lagi:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Sekarang saya dapat menyalin dan menempel menggunakan "+ y dan" + p masing-masing.
sed -n5,10p
untuk mencetak baris 5-10 sehingga saya bisa lebih mudah menyalin dan menempel tanpa vim bereaksi ke mouse.