Saya mencoba menggunakan Ctrl+ Vuntuk menempelkan konten dalam dokumen vi editor, tetapi Ctrl+ Vtidak ditafsirkan sebagai tempel.
Saya mencoba menggunakan Ctrl+ Vuntuk menempelkan konten dalam dokumen vi editor, tetapi Ctrl+ Vtidak ditafsirkan sebagai tempel.
Jawaban:
Pertama, pastikan Anda dalam mode edit (tekan i). Kemudian Anda dapat menempel dengan Ctrl+ Shift+ V, jika Anda berada di terminal seperti emulator gnome-terminal
(atau pilih "Tempel" dari menu klik kanan).
Anda juga dapat mengetikkan :set paste
vim sebelum Anda menempel untuk menonaktifkan indentasi otomatis, dll. Kemudian :set nopaste
setelah Anda menempelkan konten.
Periksa juga pertanyaan ini di stackoverflow.com untuk informasi lebih lanjut.
Jika Anda ingin menyalin / menempelkan baris dalam vim
(tidak seperti menempelkan konten clipboard), Anda ingin memeriksa perintah yank . Berikut adalah lembar contekan yang mungkin membantu.
I
case-sensitive. Huruf kecil i
adalah cara normal memasuki mode penyisipan. Capital I
membawa kursor ke awal baris dan kemudian memasukkan Anda ke mode insert.
Vi (dan Vim) bekerja sangat berbeda dibandingkan dengan editor teks biasa seperti Gedit. Ini juga memiliki kurva belajar yang cukup curam. Jika Anda ingin mempelajari beberapa perintah dasar, mulailah dengan tutorial interaktif ini .
Namun, untuk menjawab pertanyaan Anda. Konten clipboard sistem dapat diakses melalui register plus. Jadi untuk menempelkan sesuatu dari clipboard sistem yang Anda bisa, dari mode Normal, tekan: "+p(Bukan pada saat yang sama, tetapi satu demi satu).
vi
tidak menggunakanvim
set :paste
).
Jika Anda ingin menyalin konten tempel dalam file yang sama , gunakan yank
dan paste
.
Jika Anda ingin menyalin konten tempel di terminal , buka file pertama, tarik teks yang Anda inginkan, lalu buka file kedua Anda dalam vim (mis. :tabnew /path/to/second/file
) Dan tekan p
untuk menempelkannya.
Jika Anda ingin menyalin konten tempel dari vim ke program eksternal , Anda perlu mengakses clipboard sistem. Saya berasumsi Anda menggunakan Ubuntu. Versi GUI vim selalu memiliki dukungan clipboard, namun, jika Anda ingin menggunakan Vim dari terminal, Anda harus memeriksa dukungan X11-clipboard.
Dari konsol, ketikkan:
$ vim --version | grep xterm
Jika Anda menemukan -xterm_clipboard , Anda memiliki dua opsi:
1) Kompilasi sendiri vim, dengan flag xterm_clipboard menyala
2) Hapus instalan vim, instal gvim (vim-gtk atau vim-gnome) sebagai gantinya. Anda dapat tetap menggunakan non-gui vim dengan memanggil vim dari terminal, seperti yang Anda lakukan sebelumnya. Kali ini ketika Anda memeriksa Anda harus menemukan + xterm_clipborad .
Sekarang, ketika Anda menarik beberapa teks dalam register + di dalam editor vim Anda (misalnya "+ yy), itu juga akan disalin ke clipboard sistem yang dapat Anda ambil dari program eksternal Anda seperti editor gedit, dengan menggunakan Ctrl+ V.
Jika Anda ingin menyalin konten tempel dari program eksternal ke vim , pertama-tama salin teks Anda ke clipboard sistem melalui Ctrl+ C, kemudian dalam mode insert editor vim , klik tombol tengah mouse (biasanya roda) atau tekan Ctrl+ Shift+ Vuntuk menempel.
Ini adalah 4 kondisi penyalinan & rekat dasar yang terkait dengan vim. Saya harap ini membantu.
vim-gtk
memiliki xterm_clipboard
dukungan dan di Fedora xvim
memilikinya.
Saya selalu menggunakan Shift+ Insertketika saya ingin menempelkan teks ke terminal, berfungsi di semua program terminal.
(Yang juga merupakan alasan mengapa saya tidak pernah mendapatkan laptop di mana Anda tidak dapat menekan Inserttanpa menekan tombol sekunder)
Vi
/ Vim
! = terminal;)
Ctrl+A
, Ctrl+C
juga?
Setelah Anda masuk vi, tekan i
untuk masuk ke mode insert, klik kanan ke terminal, klik paste.
i
. Apa yang dilakukan huruf besar I
?
i
. Huruf besar I
memindahkan kursor ke awal baris sebelum memasuki mode insert, yang tidak diperlukan di sini.
Instruksi terperinci untuk menyalin / menempelkan baris teks dalam vi menggunakan yank
danput
(gunakan perintah berikut dalam mode perintah vi)
Salin (YANK)
Untuk menyalin satu baris di vi:
yy
atau ketikY
Untuk menyalin 2 baris di vi:
2yy
atau ketik2Y
(juga, sejumlah baris dapat disalin)
Untuk menyalin semua baris dari lokasi saat ini ke akhir file:
yG
Untuk menyalin semua teks dari lokasi saat ini ke akhir kata saat ini:
yw
Untuk menyalin semua teks dari lokasi saat ini ke akhir baris:
y$
Tempel (PUT)
Untuk menempelkan teks di clipboard - setelah lokasi kursor:
p
Untuk menempelkan teks di clipboard - sebelum lokasi kursor:
P
Saya mempunyai masalah, karena instalasi 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.
Dengan Vim 8+ di Linux atau Mac, Anda sekarang dapat menggunakan pasta asli OS ( ctrl+shift+V
di Linux, cmd+V
di Mac). Jangan menekan i
untuk Mode Sisipkan.
Ini akan menempelkan isi clipboard OS Anda, menjaga spasi dan tab tanpa menambahkan autoindenting. Ini setara dengan tua :set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
metode.
Anda bahkan tidak perlu menginstal fitur +clipboard
atau +xterm_clipboard
vim lagi. Fitur ini disebut "braket tempel". Untuk detail lebih lanjut, lihat https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Jika Anda melakukan root : Ctrl+ Shift+V
Jika Anda tidak melakukan root : Pusat klik mouse.
Saya hanya ingin mencatat bahwa menggunakan Vim via Git Bash di Windows, Anda bisa menggunakan p
atau klik tengah mouse tanpa berada dalam mode insert. Menggunakan Vim melalui Putty , Anda bisa klik kanan. Dan highlighting melakukan penyalinan.
Saya mencatat ini karena saya sampai di sini tidak melihat bahwa ini adalah SE untuk Ubuntu.
Perintah bermanfaat lainnya:
Anda dapat menggunakan Ctrl+ Shift+ Vuntuk menempel di terminal versi vim, tetapi untuk versi GUI seperti vim Neovim-Qt
, menempelkan teks dari clipboard sistem dengan Ctrl+ Shift+ Vtidak akan berfungsi. Anda harus mengakses clipboard "+
atau "*
editor vim.
Menambahkan pengikat kunci baru .vimrc
akan cukup dengan perintah salin / tempel:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutor
Ini akan membuat Anda lebih cepat ke tempat itu dapat digunakan untuk Anda dalam waktu sekitar 45 menit.