Bagaimana cara membuat vim paste dari (dan salin ke) clipboard sistem?

772

Tidak seperti editor lain, vim menyimpan teks yang disalin dalam clipboardnya sendiri. Jadi, sangat sulit bagi saya untuk menyalin beberapa teks dari halaman web dan menempelkannya ke file yang sedang aktif. Kebetulan saya harus membuka gedit atau mengetik secara manual.

Bisakah saya membuat vim paste dari dan ke clipboard sistem?

Santosh Kumar
sumber
7
Kemungkinan duplikat dari Cara menyalin ke clipboard menggunakan vim?
BuZZ-dEE
7
Salin "+ y Tempel" + p Berfungsi seperti menyentak dan menempel kecuali Anda menentukan registri sebelumnya.
Banjocat
2
Untuk menggunakan perintah berikut, pastikan Anda telah melakukan sudo apt-get install vim-gnome yang akan menambahkan fungsionalitas itu ke inbuilt vim menggunakan clipboard sistem.
Harnirvair Singh
2
@Harnirvair Bagi banyak set pembaca di sini, vim-gnomemungkin berlebihan atau tidak tersedia di OS / distro mereka, sedangkan saya curiga vim-gtkdan lebih disukai vim-gtk3lebih mungkin ada dan menarik lebih sedikit ketergantungan, sambil tetap menyediakan integrasi clipboard (setidaknya untuk mereka yang masih menggunakan X11; Saya tidak yakin bagaimana ini semua berinteraksi dengan Wayland).
underscore_d
3
Secara default di Fedora - tidak ada akses clipboard (Anda perlu gvim), superuser.com/questions/194747/…
icc97

Jawaban:

881

The "*dan "+register adalah untuk clipboard sistem ( :help registers). Tergantung pada sistem Anda, mereka dapat melakukan hal yang berbeda. Misalnya, pada sistem yang tidak menggunakan X11 seperti OSX atau Windows, "*register digunakan untuk membaca dan menulis ke clipboard sistem. Pada sistem X11 kedua register dapat digunakan. Lihat :help x11-selectionuntuk lebih jelasnya, tetapi pada dasarnya "*analog dengan pemilihan PRIMARY X11 (yang biasanya menyalin hal-hal yang Anda pilih dengan mouse dan pasta dengan tombol tengah mouse) dan "+analog dengan pemilihan CLIPBOARD X11 (yang merupakan papan klip yang tepat).

Jika semua itu melampaui kepala Anda, coba gunakan "*yyatau "+yysalin baris ke papan klip sistem Anda. Dengan asumsi Anda memiliki opsi kompilasi yang sesuai, satu atau yang lain akan berfungsi. Anda mungkin ingin memetakan ulang ini untuk sesuatu yang lebih nyaman bagi Anda. Sebagai contoh, Anda dapat memasukkan vnoremap <C-c> "*y~ / .vimrc Anda sehingga Anda dapat memilih secara visual dan menekan Ctrl+ cuntuk menarik ke clipboard sistem Anda.

Perlu diketahui bahwa menyalin / menempel dari clipboard sistem tidak akan berfungsi jika :echo has('clipboard')mengembalikan 0. Dalam hal ini, vim tidak dikompilasi dengan +clipboardfitur dan Anda harus menginstal versi yang berbeda atau mengkompilasi ulang. Beberapa distro linux secara default menyediakan instalasi vim minimal, tetapi umumnya jika Anda menginstal paket vim-gtkatauvim-gtk3 Anda bisa mendapatkan fitur tambahan.

Anda juga mungkin ingin melihat 'clipboard'opsi yang dijelaskan di :help cb. Dalam hal ini Anda dapat :set clipboard=unnamedatau :set clipboard=unnamedplusuntuk membuat semua operasi menarik / menghapus secara otomatis menyalin ke clipboard sistem. Ini bisa menjadi ketidaknyamanan dalam beberapa kasus di mana Anda menyimpan sesuatu yang lain di clipboard karena akan menimpanya.

Untuk menempelkan Anda dapat menggunakan "+patau "*p(lagi, tergantung pada sistem Anda dan / atau pilihan yang diinginkan) atau Anda dapat memetakan ini ke sesuatu yang lain. Saya mengetiknya secara eksplisit, tetapi saya sering menemukan diri saya dalam mode insert. Jika Anda dalam mode sisipkan, Anda masih dapat menempelkannya dengan lekukan yang tepat dengan menggunakan <C-r><C-p>*atau <C-r><C-p>+. Lihat :help i_CTRL-R_CTRL-P.

Ini juga layak menyebutkan pasteopsi vim ( :help paste). Ini menempatkan vim ke dalam "mode tempel" khusus yang menonaktifkan beberapa opsi lain, memungkinkan Anda untuk dengan mudah menempel ke vim menggunakan emulator terminal Anda atau pintasan tempel multiplexer yang sudah dikenal. Cukup ketik :set pasteuntuk mengaktifkannya, rekatkan konten Anda dan kemudian ketik :set nopasteuntuk menonaktifkannya. Atau, Anda dapat menggunakan pastetoggleopsi untuk mengatur kode kunci yang mengaktifkan mode ( :help pastetoggle). Saya sarankan menggunakan register daripada opsi ini, tetapi jika mereka masih terlalu menakutkan ini bisa menjadi solusi yang nyaman saat Anda menyempurnakan vim chops Anda.

Lihat :help clipboarduntuk informasi lebih rinci.

Conner
sumber
104
Ini sangat informatif, tetapi dapatkah Anda meringkas penekanan tombol yang perlu dilakukan untuk menempelkan dari clipboard sistem ... misalnya apa yang dilakukan dengan seseorang "*p? Apakah saya menekan Shift- ', lalu Shift-8, lalu p, dll?
T. Brian Jones
11
Ya, ketikkan ketiga karakter secara berurutan. Banyak perintah dalam vim memanfaatkan apa yang dikenal sebagai "mode pending operator" di mana satu tombol ditekan dan kemudian vim menunggu lebih banyak tombol. Ambil ddcontoh. Yang pertama dmemasuki mode pending operator, kemudian yang kedua dmenyelesaikan perintah dan menghapus garis. Jika Anda mengetik dG, bagaimanapun, Gmembuatnya menghapus ke akhir file, bukan hanya menghapus baris. Register menggunakan prinsipal yang sama ini untuk memungkinkan berbagai perintah untuk menggunakannya.
Conner
4
Sayang! Jika saya hanya melihat posting ini sebelum hari ini! Ini semua yang saya ingin tahu tentang copy dan paste dari clipboard sistem. "<Cr> <Cp> * atau <Cr> <Cp> +" adalah emas murni.
Keith Pinson
55
Penekanan: Anda perlu menginstal vim-gtkpaket (setidaknya di bawah Debian), untuk mendapatkan vim yang dikompilasi +xterm_clipboard. Butuh 40mn untuk mencari tahu, dan hanya beberapa detik untuk sudo apt-get install vim-gtk.
Dominykas Mostauskis
3
@DominykasMostauskis vim-gnomejuga berfungsi dan telah +xterm_clipboarddiaktifkan.
Chev
155

Anda dapat menyalin ke vim dengan cara pintas gnome-terminal untuk menempel. Buat file dalam mode sisipkan dan gunakan

Ctrl+ Shift+ v.

Ingat sebelumnya untuk

 :set paste 

untuk menghindari mengacaukan lekukan.

neel
sumber
20
ini mengacaukan lekukan jika ada beberapa baris seperti python untuk loop
Moj
11
Gunakan sakelar tempel untuk mode penyisipan. Misalnya mengatur pastetoggle = <F2> Kemudian dalam mode insert, tekan <F2> dan kemudian masukkan kode python Anda.
Jan Weitz
Ya salin dengan Ctrl + Shift + c dan rekatkan ke file lain yang lain
neel
1
jika tab / spasi putih, eols dll ditampilkan sebagai karakter yang terlihat (melalui opsi listchars), maka karakter pengganti tersebut akan disalin dan bukannya yang tersembunyi.
user907860
2
Ini harus menjadi jawaban yang dipilih dengan jawaban
singkatnya
41

Linux

Di sistem Linux saya, +dan *mendaftar peta ke pilihan X11, yang dapat ditempelkan dengan tombol tengah mouse. Kapan :set clipboard=unnameddan :set clipboard=unnamedplusdigunakan, maka register memetakan ke clipboard, dan dapat ditempel dengan CTRL-V.

Spesifikasinya tampaknya agak konfigurasi dan bergantung pada sistem, sehingga jarak tempuh Anda pasti akan bervariasi. Ini pasti membuat Anda menunjuk ke arah yang benar.

Lihat juga

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

Todd A. Jacobs
sumber
2
Hanya *peta ke register utama X11 (yang biasanya ditempel dengan mouse). +peta ke register clipboard X11 yang biasanya disisipkan oleh pintasan.
ZyX
@ZyX Tidak ada di sistem saya, tetapi jarak tempuh Anda mungkin berbeda. Yang terbaik adalah mengonfigurasi perilaku yang Anda inginkan secara eksplisit jika Anda ingin pengalaman yang konsisten di seluruh platform dan versi perangkat lunak.
Todd A. Jacobs
Saya percaya itu berarti Anda memiliki manajer clipboard seperti klipper / glipper, mereka dapat menyinkronkan dua buffer. Itu tidak mengubah fakta bahwa vim menggunakan *untuk +register X11 primer dan untuk clipboard, Anda dapat melihat ini di sumber vim: nilai - nilai ini diatur di sana dan tidak pernah dimodifikasi, dan clip_stardan clip_plusselalu digunakan untuk *dan +register masing-masing.
ZyX
41

Bagi saya konfigurasi itu berfungsi untuk menyalin dan menempel

" copy and paste
vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <ESC>"+pa
lis2
sumber
ke dalam apa yang Anda tempel?
StarWind0
IMHO ini adalah solusi yang lebih baik yang mengatur clibboard menjadi tidak bernama - tidak mengacaukan clipboard OS dengan setiap tindakan x / dd / y dll. Dan pada Mac mungkin ide yang lebih baik untuk mengubah pengubah C (ctrl) ke D untuk memetakan kombinasi cmd + c / x / v.
mindex
34

Ini akan menjadi baris yang Anda butuhkan di vimrc Anda untuk tujuan ini:

set clipboard+=unnamed  " use the clipboards of vim and win
set paste               " Paste from a windows or from vim
set go+=a               " Visual selection automatically copied to the clipboard
Danniel Little
sumber
2
Saya suka solusi Anda. Saya ingin penjelasan yang lebih baik.
zhon
luar biasa. menggunakan register selalu membuat saya ragu dan harus berpikir. Ini jauh lebih baik
JonnyRaa
Versi vim saya memiliki + clipboard dan opsi ini tidak berfungsi untuk saya. Saya menggunakan Byobu (yang menggunakan Tmux di bawah tenda).
GGhe
Saya harus menambahkan set clipboard + = unnamedplus untuk Fedora
hakunin
30

Saya percaya bahwa pertanyaan ini layak mendapatkan jawaban yang lebih objektif dan grafis:

Memasuki Mode Tempel

  • ESC
  • : atur tempel
  • tekan i
  • SHIFT+ Insert(dengan teks yang disalin di clipboard Anda)


Meninggalkan Mode Tempel

  • ESC
  • : set nopaste
  • tekan i

Anda menempelkan teks dan Anda bisa mengetik lagi.

ivanleoncz
sumber
1
Saya mendapatkan ini untuk bekerja, tetapi :set nopastetidak melakukan apa-apa. Apa yang seharusnya dilakukan? Mengapa saya membutuhkannya?
Marko Avlijaš
1
Sebenarnya, itu benar. Saat Anda tampil :set nopaste, Anda memberi tahu editor bahwa Anda tidak ingin menempel lagi. Dan ketika Anda menekan i, Anda kembali ke mode edit :).
ivanleoncz
2
Jujur dengan Anda, Marko, saya tidak tahu.
ivanleoncz
1
SHIFT + Insert membuatnya untuk saya, terima kasih!
Melissa Loos
1
Ini bekerja seperti pesona bagi saya. Setiap kali saya kembali ke vim, saya selalu harus terlihat seperti ini.
benjaminadk
17

papan klip

Ada register khusus untuk menyimpan pilihan ini, ini adalah register "*. Tidak ada yang dimasukkan di sini kecuali informasi tentang teks apa yang akan diubah (mis. Dengan klik kiri mouse di suatu tempat), atau ketika aplikasi lain ingin rekatkan teks yang dipilih. Kemudian teks dimasukkan ke dalam register "*. Misalnya, untuk memotong garis dan menjadikannya pilihan saat ini / letakkan di CLIPBOARD:

    "*dd

Demikian pula, ketika Anda ingin menempelkan pilihan dari aplikasi lain, misalnya, dengan mengklik tombol tengah mouse, pilihan dimasukkan ke dalam "* daftar terlebih dahulu, dan kemudian 'masukkan' seperti daftar lainnya. Misalnya, untuk meletakkan pilihan (isi CLIPBOARD):

    "*p

register E354

> There are nine types of registers:                      
> 1. The unnamed register ""
> 2. 10 numbered registers "0 to "9
> 3. The small delete register "-
> 4. 26 named registers "a to "z or "A to "Z
> 5. four read-only registers ":, "., "% and "#
> 6. the expression register "=
> 7. The selection and drop registers "*, "+ and "~ 
> 8. The black hole register "_
> 9. Last search pattern register "/

Tempel dari clipboard

1. Clipboard: Copy
2. Vim insertmode, middle mouse key

Periksa dukungan X11-clipboard di terminal

Ketika Anda ingin menjalankan Vim di terminal, Anda perlu mencari versi Vim yang dikompilasi dengan dukungan clipboard. Periksa dukungan X11-clipboard, dari konsol, ketik:

% vim --version

Jika Anda melihat "+ xterm_clipboard", Anda dapat melakukannya.

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

Server X memelihara tiga pilihan, yang disebut:

PRIMARY, SECONDARY dan CLIPBOARD

Pilihan PRIMARY secara konvensional digunakan untuk mengimplementasikan penyalinan dan menempel melalui tombol tengah mouse. Pilihan SECONDARY dan CLIPBOARD lebih jarang digunakan oleh program aplikasi.

http://linux.die.net/man/1/xsel

Demz
sumber
12

Saya mencoba saran di atas dan tidak ada yang bekerja di lingkungan saya. (Windows Putty mengkloning lebih dari ssh)

Beberapa googling tambahan muncul: /unix/110684/copy-paste-into-sshd-vim-from-local-windows-clipboard

Salah satu komentar yang disarankan menggunakan SHIFT+INSERTyang melakukan trik untuk menempelkan dari clipboard desktop saya ke buffer Vim. Ctrl-Csudah bekerja untuk menyalin ke papan klip desktop dari Vim.

Komunitas
sumber
2
Saya sedang mengerjakan vim di dalam alat cmder [windows 8.1]. ketika Anda masuk ke pengaturan cmder> tombol dan makro> tempel, di sana saya mendapat perintah shift + insert untuk multiline paste dan ctrl + v untuk tempel baris tunggal.
Zubair Alam
1
bagi saya klik kanan sederhana berfungsi seperti pesona !! Cukup klik kanan!
Fr0zenFyr
2
Karena Anda menggunakan terminal dan ssh vim tidak dapat menjangkau clipboard sistem asli Anda melalui SSL. SHIFT+INSERTberfungsi karena ini adalah opsi tempel untuk terminal Anda (atau dalam kasus Anda Putty); Namun, indentasi kemungkinan akan salah. Lihat paragraf terakhir jawaban saya tentang pasteopsi untuk memperbaikinya.
Conner
1
@ jinksPadlock. terima kasih .. yeah .. Saya dapat menyalin / menempelkan melalui mouse .. sedang berusaha mencari cara untuk melakukannya dengan "keyboard saja". Menyalin dari windows ke VIM mungkin dengan Keyboard-only menggunakan Putty, tetapi tidak dalam arah sebaliknya. Di bash untuk windows .. itu tidak mungkin untuk melakukannya di kedua arah ATM. Menyusun daftar sumber daya untuk mengarahkan orang ke arah yang benar dan juga bagi kami .. jika Anda memiliki sesuatu untuk ditambahkan .. Anda dapat menambahkannya di sini: stackoverflow.com/questions/45271895/…
alpha_989
1
@ alpha_989 nanti-lebih baik daripada tidak pernah;) Saya tidak dapat menambahkan ke jinksPadlock 'karena saya saat ini tidak memiliki OS Windows di bawah jari saya. SHIFT+INSbekerja dari host linux ke ssh vim dan juga klik ketiga mouse.
tuk0z
10

Tidak punya + clipboard jadi saya datang dengan solusi alternatif ini menggunakan xsel:

Tambahkan ke ~ / .vimrc Anda:

vnoremap <C-C> :w !xsel -b<CR><CR>

rotestein
sumber
1
Terima kasih atas ide bagus ini! Saya akhirnya menggunakan:vnoremap <C-C> :w !xclip -i -sel c<CR><CR>
andy
6

Catatan cepat untuk orang-orang yang pemasangan vim-nya tidak mendukung register * dan +. Tidak perlu mengunduh instalasi vim baru untuk menempel dari clipboard. Berikut adalah metode alternatif:

1) Instal parcellite (pengelola clipboard dengan jejak memori rendah);

2) Dalam file .vimrc Anda, tambahkan berikut ini:

command Clip r !parcellite -c

3) Mulai ulang vim.

Sekarang ketika Anda mengetik: Klip sebagai perintah ex, konten clipboard akan disisipkan di kursor. Anda juga dapat memetakan perintah baru ke tombol fungsi agar dapat melakukan ini dengan satu penekanan tombol.

lovecraftian
sumber
4

Ini berfungsi untuk saya: Ctrl+ Shift+V

Boseam
sumber
3
@ neel sudah menyatakan ini. Ini seharusnya hanya komentar, atau lebih baik suara, jika Anda ingin mengatakan itu juga bekerja untuk Anda.
ericbn
3

Solusi paling sederhana untuk ini, yang juga berfungsi di antara berbagai mesin Linux sshadalah:

  1. Periksa apakah mendukung vim X-11 clipboard: vim --version | grep clipboard. Jika ia melaporkan kembali -clipboarddan -xterm_clipboardAnda harus menginstal salah satu vim-gtkatau vim-gnome(gvim di arch linux)

  2. Tambahkan baris berikut ke .vimrc:

set clipboard=unnamedplus
set paste
  1. Jika Anda masuk pada mesin lain melalui ssh, gunakan opsi -Y: ssh -Y machine

Sekarang menyalin dan menempel harus bekerja persis seperti yang diharapkan pada satu, dan di berbagai mesin dengan hanya menggunakan yuntuk menarik dan puntuk menempel. NB memodifikasi .vimrcsemua mesin tempat Anda ingin menggunakan fitur ini.

chao
sumber
Saya pikir, server X harus tersedia di server juga agar ini berfungsi. Ya! mungkin diinstal oleh vim-gtk. Saya pikir, xvfb akan menjadi opsi alternatif untuk menjalankan X server.
Ajeeb.KP
3

Saya mengalami masalah ini pada pertengahan 2017 Macbook Pro berjalan di vimdalam iTerm2sebagai lingkungan pengembangan utama saya.

Seperti jawaban lain yang disarankan, saya berlari vim --versiondan memperhatikan bahwa itu kembali -clipboard, yang berarti bahwa versi vimyang dikirimkan dengan mesin saya belum dikompilasi dengan opsi clipboard.

The homebrewpaket untuk vimmuncul untuk mengkompilasi dengan clipboardpilihan, sehingga memperbaiki bagi saya adalah untuk:

  1. Lari brew install vim
  2. Tambahkan set clipboard+=unnamedke ~/.vimrcfile saya
  3. Tutup dan buka kembali iTerm2
NM Pennypacker
sumber
3

Salin Ke Papan Klip OS

Pilih teks dalam mode visual, tekan "*y

Tempel Dari OS Clipboard

tekan "*p

Muhammed Ozdogan
sumber
2

Menyusul dari jawaban Conner, yang hebat, tetapi C-R C-p + dan C-R C-p *dalam mode insert agak merepotkan. Ditto "*pdan "+pdari mode perintah.

seorang guru VIM menyarankan yang berikut untuk memetakan C-vapa yang C-r C-p +dilakukannya.

Anda dapat memiliki hanya :inoremap <C-v> <C-o>"+puntuk mode penyisipan

jika Anda benar-benar ingin mengganti mode visual blockwise (tidak direkomendasikan olehnya karena mode visualnya bagus), Anda bisa melakukannya map <C-v> "+p

barlop
sumber
2

Jika Anda menggunakan vim di MAC OSX, sayangnya itu datang dengan versi yang lebih lama, dan tidak mematuhi opsi clipboard. Untungnya, homebrew dapat dengan mudah menyelesaikan masalah ini.

instal vim:

brew install vim --with-lua --with-override-system-vim

pasang gui verion of vim:

brew install macvim --with-lua --with-override-system-vim

restart terminal untuk mulai berlaku.


tambahkan baris berikut ke ~/.vimrc
set clipboard=unnamed

sekarang Anda dapat menyalin baris dalam vim dengan yydan menempelkannya di seluruh sistem.

anonim
sumber
2

Jika Anda menggunakan mouse, lakukan dulu

 :set paste 

Kemudian right click mousedan konten dalam buffer akan ditempelkan

Mohammed Rafeeq
sumber
1

Di atas pengaturan :set clipboard=unnamed, Anda harus menggunakan mvim -vyang bisa Anda dapatkan brew install macvimjika Anda menggunakan vim di Terminal.app di Mac OS X 10.9. Vim default tidak mendukung opsi clipboard.

Nobu
sumber
1

Mungkin juga layak disebutkan, pada OSX menggunakan Vim, Anda dapat memilih teks dengan mouse, Cmd-C untuk menyalin ke clipboard sistem OSX, dan teks yang disalin akan tersedia di clipboard di luar Vim.

Dengan kata lain, OSX memperlakukannya seperti jendela biasa, dan di sinilah tombol "Command" Apple yang banyak difitnah berguna.

B-30

B-30
sumber
1
Ini juga berlaku untuk emulator terminal setengah layak pada OS lainnya. Apel tidak memiliki keuntungan apa pun di sini.
underscore_d
1

Berdasarkan jawaban @ lis2, saya menggunakan konfigurasi yang lebih sederhana yang tidak akan memaksa mode Insert di akhir:

" Copy and paste
if has('clipboard') && !has('gui_running')
  vnoremap <C-c> "+y
  vnoremap <C-x> "+d
  vnoremap <C-v> "+p
  inoremap <C-v> <C-r><C-o>+
endif

Harap diingat bahwa semua ini menimpa pemetaan Vim default:

  • v_CTRL-C: hentikan mode Visual
  • v_CTRL-X: kurangi [hitung] dari angka
  • v_CTRL-V: mode Visual blockwise
  • i_CTRL-V: masukkan non-digit berikutnya secara harfiah, yang juga dipetakan ke i_CTRL-Q

Sebagai alternatif, kita dapat menggunakan tombol terinspirasi dalam "yank", "delete" dan "menempatkan" Vim kata kerja: <C-y>, <C-d>dan <C-p>masing-masing. Ini hanya akan menimpa satu pemetaan default:

  • i_CTRL-P: mundur mencari kata kunci untuk penyelesaian
ericbn
sumber
1

Solusi lain baik jika Anda ingin mengubah vimrc Anda, dll ... Namun saya ingin cara sederhana untuk menyalin dari vim ke keyboard sistem saya. Inilah yang saya pikirkan.

  • Pilih teks yang ingin Anda salin dengan mode visual v
  • Tekan :(ini akan secara otomatis diperluas untuk menampilkan :'<,'>)
  • Ketik y * atau y + (tergantung pada sistem Anda) untuk menarik teks yang dipilih ke clipboard sistem
NateW
sumber
1

Yang benar-benar Anda butuhkan adalah EasyClip . Itu akan melakukan hal itu dan banyak lagi ...

Scott Wade
sumber
1

Sejak vim 8 klik kanan memungkinkan mode visual secara default. Ini mencegah copy & paste "normal" (menyebutnya "cacat oleh desain" https://github.com/vim/vim/issues/1326 ). Perbaiki dengan melakukan:

echo "set mouse-=a" >> ~/.vimrc .

Keluar dan mulai ulang vim.

dr0i
sumber
1

Dengan Vim 8+ di Linux atau Mac, Anda sekarang bisa menggunakan pasta asli OS ( ctrl+shift+Vdi Linux, cmd+Vdi Mac). Jangan menekan iuntuk 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 nopastemetode.

Anda bahkan tidak perlu menginstal fitur +clipboardatau +xterm_clipboardvim lagi. Fitur ini disebut "braket tempel". Untuk detail lebih lanjut, lihat Mematikan indentasi otomatis ketika menempelkan teks ke vim

wisbucky
sumber
0

Ketika saya menggunakan vim Debian saya yang tidak terintegrasi dengan Gnome (vim --versi | grep clip # tidak menunjukkan dukungan clipboard), saya dapat menyalin ke clipboard setelah memegang tombol Shift dan memilih teks dengan mouse, sama seperti dengan program kutukan lainnya. Seperti yang saya ketahui dari komentar oleh @Conner, itu adalah terminal (gnome-terminal dalam kasus saya) yang mematikan event mouse-nya yang melaporkan ketika merasakan Shift saya. Saya kira program berbasis kutukan dapat menerima acara mouse setelah mengirim urutan Escape tertentu ke terminal.

belut ghEEz
sumber
1
Ini menggunakan terminal Anda, bukan vim.
Conner
0

Jika Anda berada di windows dan Anda ingin menempelkan isi clipboard sistem menggunakan pkemudian ketik perintah ini.

:set clipboard = unnamed

Ini menyelesaikan masalah saya.

vincent mathew
sumber
0

Ada dua cara sederhana untuk melakukan ini. Jadikan file Anda dalam mode sisipkan dan 1) tekan tombol tengah (roda gulir) di mouse Anda, atau 2) Ctrl + Shift + V

pengguna1898814
sumber
0

Untuk beberapa keyboard internasional, Anda mungkin perlu menekan "+ Spaceuntuk mendapatkan ".

Jadi dalam hal ini Anda harus menekan "Space+yatau "Space*ymenyalin.

Dan "Space+patau " Space*pmenempel.

Arthur F
sumber
0

Saya menggunakan jawaban NM Pennypacker dan menginstal vim via homebrew untuk awal 2011 MacBook Pro:

brew install vim

Sekarang saya juga dapat menggunakan "* register untuk menyalin dan menempelkan teks dalam vim. Saya bahkan tidak perlu mengubah sesuatu di dalam file ~ / .vimrc saya atau $ PATH. Homebrew menambahkan symlink di / usr / local / bin, mis. vim -> ../Cellar/vim/8.1.2350/bin/vim.

Alternatif, yang berfungsi sebelumnya, adalah menyalin beberapa baris teks dalam vim dengan menandainya dengan mouse dan menggunakan salin dan tempel (cmd + c, cmd + v) pada mac. Opsi ini hanya berfungsi jika teks yang ingin Anda salin dan tempel memiliki ukuran kurang dari ukuran jendela vim. Jika Anda ingin menyalin semua teks dalam vim dengan menandai seluruh jendela atau menggunakan cmd + a, ini akan menyalin bagian lain dari konsol, ditulis sebelum memulai vim, yang sangat menjengkelkan.

Jadi, saya senang menemukan metode baru menggunakan daftar kliping.

feli_x
sumber