Vim'de seçili satırları panoya kopyalama


Yanıtlar:


107

SHIFTVsizi seçili çizgiler moduna geçirir. Ardından "*y, seçili olan satırları *pano olan kayda çeker. Orada epeyce farklı amaçlar için farklı kayıtlar. Windows ve Linux üzerindeki kayıtlar ve selection and drop registersarasındaki farklarla ilgili ayrıntılar için bölümüne bakın .*+


10
Linux'ta + global panodur, * seçim panosudur, Windows'ta her ikisi de global panoya eşlenir.
Mohnish

74

Linux'taysanız ve bir VIm sürüm 7.3.74 veya üzeri kullanıyorsanız (Ubuntu 11.10'a yüklenen sürüm bunu karşılar), şunları yapabilirsiniz:

set clipboard=unnamedplus

Bu, yanmış metni genel panoya yerleştirir ve herhangi bir özel yazmaç kullanmak zorunda kalmadan genel panodan yapıştırmanıza izin verir. Ldigas'ın çözümünden farklı olarak, bu aynı zamanda VIm'in gui olmayan sürümlerinde de çalışacaktır.


8
Bu sadece vim-gnomeyerine paketi yüklersem işe yarar vim.
dan-klasson

4
@ dan-klasson: Bu seçenek, pano desteğiyle derlenmiş bir vim gerektirir. Yazarak durumun bu olup olmadığını kontrol edebilirsiniz vim --version | grep "+xterm_clipboard".
BenC

Bu, diğer vim olmayan programlara kopyalamak için çalışıyor gibi görünüyor, ancak vim'de ekleme moduna girdiğimde ve panodan yapıştırmak için "shift + insert" kullandığımda, sadece ilk iki satır yapıştırılıyor ... vim-gnome'u kurdum ; başka bir şey mi kaçırıyorum
t2k32316

2
MacOS kullanıyorsanız, muhtemelen clipboard=unnamedbunun yerine kullanmanız gerekecektir ( vim.wikia.com/wiki/Accessing_the_system_clipboard )
2016

13
set guioptions+=a

Will, ... uhmm, kısaca, bir şeyi ne zaman seçerseniz / çekerseniz, onu panoya da koyar (Vim'lerin değil, pencere sisteminin genel klavyesi). Bu şekilde, işleri özel bir sicile çekmeyi düşünmek zorunda kalmazsınız.


2
//, Bu tavsiye hangi işletim sistemleri ve / veya Vim sürümleri için geçerlidir?
Nathan Basanese

10

GVIM viçin görsel moda geçmek için tıklayın; metni seçin ve Ctrl+Insertseçimi genel panoya kopyalamak için tıklayın.

Menüden kısayol tuşu olduğunu görebiliriz "+yyani tutma Shift tuşu, ardından basın ", sonra +Shift tuşuna basın ardından serbest bırakılmayı ve y(+ Insert Shift kıyasla hantal).


Bu cevap neden popüler değil? :(
Ankit Shubham

6

MAC OSX'te vim kullanıyorsanız, maalesef daha eski sürümle birlikte gelir ve pano seçenekleriyle uyumlu değildir. Neyse ki homebrew bu sorunu kolayca çözebilir.

vim'i yükle:

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

vim'in gui sürümünü yükleyin:

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

etkili olması için terminali yeniden başlatın.

aşağıdaki satırı ~ / .vimrc'ye ekleyin

set clipboard=unnamed

şimdi vim'deki satırı yy kopyalayabilir ve sistem genelinde yapıştırabilirsiniz.


//, bunu OSX 10.12.3'te test ettim ve burada önerdiğiniz gibi Vim'in hem en son Vim hem de latets GUI sürümünü yükledikten sonra düzgün çalıştı. Teşekkürler @anonymous.
Nathan Basanese

4

Yüklemediyseniz "xclip" yükleyin ...

sudo apt-get install xclip

Xclip, verileri "ctrl + v" yerine orta tıklatarak yapıştırdığınız "seçim / vurgulanan" panoya yerleştirir.

Vim'de iken ex komutları kullanın:

7w !xclip

veya

1,7w !xclip

veya

%w !xclip

Ardından başka bir uygulamaya yapıştırmak için sadece orta tıklayın ...


4

Eğer vim, pano desteği ile derlenmişse, şu "*yanlamı kullanabilirsiniz : görsel olarak seçilen metni register'a kopyalayın *('*' pano içindir)

Pano desteği yoksa, Ctrl+Insertvim'deki metni görsel olarak seçtikten sonra sadece başka bir yol kullanmak olduğunu düşünüyorum .


3

Aşağıdaki satırı ekledim .vimrc

vnoremap <F5> "+y<CR>

Bu, seçili metni tuşuna basarak panoya kopyalamanıza olanak tanır F5. Bunun çalışması için görsel modda olmalısınız.


1
Ekle ~/.vimrcteşekkür ederim bu çok daha iyidir.
jaggedsoft

2

Aşağıdaki kodu şuraya ekleyin .vimrc:

if has('clipboard')
    if has('unnamedplus')  " When possible use + register for copy-paste
        set clipboard=unnamed,unnamedplus
    else         " On mac and Windows, use * register for copy-paste
        set clipboard=unnamed
    endif
endif
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.