Metni Vim dışında set mouse ile kopyalama = a etkin


232

Etkinleştirildikten sonra set mouse=aVim'in içine kopyalanan metin Vim'in dışına yapıştırılmaz. Bunu düzeltmenin bir yolunu bilen var mı?

Burada, fareyle metin seçmek görsel modu açar Copyve açılır menüdeki seçeneği devre dışı bırakır :

resim açıklamasını buraya girin


2
Senin vim ile derlenmiş ise +clipboardve mouse=a, terminal açılır menü kullanmadan vim / den / kopyalamak yapıştırmak mümkün olacak. clipboardKullanarak etkin olup olmadığını kontrol edebilirsiniz vim --version.
Jérôme Pouiller

@Jezz A) mouse=aderleme seçeneği olmadığını açıklamaya değer B vimrc'de bir şeydir B) Vim derlendiğinde , açıkken ve sayıları kopyalayıp / yapıştırmadan kopyalamanıza / yapıştırmanıza +clipboardizin verir :set number, ancak yine de bazılarını yapmanız gerekir. C) Bir kişinin VIM'i yeniden derlemesi gerekmez, hangi işletim sistemi tarafından desteklenen bazı paket yöneticilerinde vim'de olabilir .. Osx'da, brew'in vim'i osx'in varsayılan vimine sahip olmasa da. Cevabım bu osxtan bahsediyor.
barlop

Belki de xselsizin için çalışıyor, editörle veya fare ile metin seçebilir ve ctrl+ckopyalamak için neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165
Naeem Baghi

Yanıtlar:


426

shiftFare ile seçim yaparken düğmesine basın . Bu, fare seçiminin mouse=aetkinleştirilmemiş gibi davranmasını sağlar .

Not: Bu hile "orta düğme yapıştırma" için de geçerlidir: dışarıda seçilen vim metnini yapıştırmak istiyorsanız shift, orta düğmeyi tıklatırken düğmesine basın . Bunu yaparken ekleme modunun etkinleştirildiğinden emin olun ( :set pastebeklenmeyen etkilerden kaçınmak isteyebilirsiniz ).

OS X (mac): ( kaynak ) seçimini yaparken alt / option tuşunu basılı tutun


2
Tamam, bu gerçekten çözüm. Ancak, ekranınızdan daha fazla kod seçmek isterseniz ne olur? (o zaman aynı zamanda kaydırmalı ve seçmelisiniz)
Ozkan

3
Blok seçimini başlatmak için <kbd> ctrl </kbd> + <kbd> kaydırma </kbd> + sol fare düğmesine basarak blok seçimini kullanma seçeneği de vardır. Farenin orta düğmesi kopyalanan içeriği başka bir pencereye yapıştırır.
14'te micrub

6
Satır numaralarınız varsa (ekran görüntüsünün gösterdiği gibi), Mac OS X'te ALT kullanmayı seçerken satır numaraları da kopyalanır. Bu durumda Blok Seçimi modunu seçerken ALT + CMD kullanmak daha iyidir, böylece sayıları seçmekten kaçınabilirsiniz.
Aaron

16
Mac Terminali için, OS X 10.11 El Capitan'dan sonra Fnanahtar doğru yol. Yani, ( mouse=aenable ile) tuşuna basarken metni seçerek FnCMD + C ile kopyalayıp istediğiniz yere yapıştırın.
YaOzI

1
Bu cevabın nasıl bu kadar çok oyu olduğunu bilmiyorum. Satır numaralarını kopyalamaktan kaçınmak için fare desteğini etkinleştirdiyseniz , bu öneri tamamen işe yaramaz.
Stelios Adamantidis

49

Kullanım ", +, ygörsel seçimi yaptıktan sonra. Yine de terminalin copy komutunu kullanmamalısınız, çünkü bu terminalin gerçek içerik yerine gördüklerini kopyalar. Bunun yaptığı şey:

  • ", +Vim'e bir +sonraki silme, sıralama veya koyma adındaki kaydı kullanmasını söyler . Adlı kayıt +özel bir kayıttır, X11 pano kaydıdır. (Diğer sistemlerde, *bunun yerine bence, görürsünüz :help clipboardve görürsünüz :help x11-selection)
  • y Vim'e seçimi daha önce belirtilen kayıt defterine koymasını söyleyen yank komutudur.

Bu şekilde eşleştirebilirsiniz:

:vmap <C-C> "+y

Ardından fare ile bir şeyi vurgulayın ve Control-Ckopyalamak için düğmesine basın .

Bu özellik yalnızca Vim +xterm_clipboardseçeneği ile derlendiğinde çalışır . Var vim --versionolup olmadığını öğrenmek için çalıştırın .


4
Veya muhtemelen "*yişletim sistemine bağlı olarak.
Ocak'ta

İşe yaradı! Ancak, kombinasyon oldukça karmaşık, aslında 4 düğme .. Muhtemelen diğer cevap "shift" yolunu kullanırken diğerini eşlemek gerekir.
lyuba

Haritalama da mükemmel çalışıyor :) Şimdi sizden hangi cevapların kabul edildiğini işaretlemeliyim
bilmiyorum

2
Benim için bu, kabul edilen yanıttan daha iyi bir çözümdür, çünkü bu yöntemle satır numaraları kopyalanmaz.
Saulo Silva

Ne olmuş +clipboard? Ve ne hakkında +clipboardsahip xterm_clipboardkapalı?
barlop

18

.Vimrc içinde set mouse=akullanım yerineset mouse=r


1
Ancak kaydırmayı devre dışı bırakır
Makesh

3
Lütfen nedenini söyle. Bir bakışta, bu temel olarak fare modunu tamamen devre dışı bırakmakla aynı görünüyor, ki bu sorunun konusu değil.
Mikel

@Mikel, cevabımı da görün Josh Lee'nin yanıtı yardımcı olabilir
barlop

Ne yazık ki, bu etkinleştirilirse satır numaralarını da kopyalar.
vikin9

17

OSX'de fnbunun yerine kullanın shift.


MacOS ana bilgisayarında anahtar eşdeğeri optionolan altanahtar ile benim için çalıştı . Debian9 uzak terminal oldu. uzaktan set mouse=a/ set mouse=riçine ekleyerek çalışmadı /etc/vim/vimrc.
mrtipale

5

Ubuntu'da, Shift tuşu kullanılarak vurgulanmış metinde VIM (Ctrl-ÜstKrktr-C ve Ctrl-ÜstKrktr-V) içindeki X-Term kopyala-yapıştır bağlamaları kullanmak mümkündür.


4

Başka bir OSX-Mac seçeneği işaretini kaldırmaktır View->Allow Mouse Reporting(veya geçiş yapmak için ⌘-R tuşlarına basmaktır.) Bu, fare etkileşimi ve fare seçimi arasında geçiş yapmanıza olanak tanır; bir değiştirici tuşunu basılı tutun.

Satır numaralarına sahip çok satırlı not:

Ben genellikle birden çok satır seçerseniz bu satır numaralarını kopyalamak için böylece etkinleştirilmiş satır numaraları vardır. Satır numaraları olmadan birden fazla satırı kopyalamak istiyorsanız, numaraları devre dışı :set nonubırakın ve :set nukopyalamayı bitirdikten sonra bunları yeniden etkinleştirebilirsiniz.


1

Sen kullanabilirsiniz :set mouse&/ kopyasını etkinleştirmek fareyi kullanarak seçilen metnin yapıştırmak için vim komut satırında. Daha sonra orta fare düğmesini veya shiftinsertyapıştırmak için kullanabilirsiniz.


Sonra sahip olduğunda :set numbernumaraları vurgular. Çok iyi değil. Böylece iyi set mouse=a
olanı

1

Vim'in derlendiği derleme ayarları sorunun bir parçasıdır. vim --versionbunları gösterir.

OSX'te varsayılan vim var -clipboard Ama ihtiyacınız var+clipboard

OSX'te macvim kullanabilirsiniz ve görünüşe göre genel olarak kullanmalısınız. Sen yapabilirsin brew cask install macvim biri var, diyeceksin +clipboard.

Onlara iki vims olacak.

~$ ls -l /usr/bin/vim   <--- default vim
-rwxr-xr-x  1 root  wheel  1745984 15 Jul  2017 /usr/bin/vim

~$ ls -l /usr/local/bin/vim   <-- macvim, installed recently via that mentioned brew line. 
lrwxr-xr-x  1 apple  admin  42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$ 

vim çalışan macvim çalışacaktır 'çünkü /usr/local/bindaha önce /usr/binyolun içinde olmalısınız , ancak kontrol edebilirsiniz which vim.

vim (macvim çalıştırmak için) çalışıyor, gayet iyi ama vi'yi macvim ile eşlemek isteyebilirsiniz çünkü aksi halde çalışan vi varsayılan vim'de kalır! Vi sym bağlantısını ln ile yeniden yazabilir veya silebilir (rm ile) ve yeniden oluşturabilirsiniz. Ve bir 'operasyon değil "hatası izin olmadan, siz (geçici olarak) devre dışı SIL zorunda yapmak için. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-aka-köksüz-on-macos-os-x .

macvim +clipboardtarafından gösterildiği gibivim --version

İşte ~/.vim/vimrcsadece gerekli çizgilerle bir çalışma .

:set mouse=a
:map <leader>c "+y
:map <leader>v "+p

Varsayılan lider anahtarı ters eğik çizgidir.

Ben bir lider anahtar kullanmanız gerektiğini bir öneri okudum .. (kesinlikle kontrol zaten kullanımda birçok anahtar vardır, bu yüzden öneri kontrol kullanmak değildi. Bu komut anahtarı için de geçerli olup olmadığını bilmiyorum, ama yine de).

O bahsedilen haritalama ile \cyapacak "+ypanoya, + olarak bilinen kayıt kopyalamak hangi. Ve \v+ olarak bilinen kayıttan yapıştıracaktır.

Yani bu pencereler arasında çalışan bir kopyala / yapıştır.

Başka işletim gerektirebilir "*ziyade"+


Her iki vim var -xterm_clipboard. Belki bir +xterm_clipboardşekilde yararlı olabilir ama bu çözüm için önemli değil.
barlop

0

Putty oturumu kullanıyorsanız, otomatik olarak seçimi kopyalar. Vim'de "fare ayarla = a" seçeneğini kullansaydık, Shift + Fare sürükleme kullanarak seçme metni otomatik olarak seçer. X döneminde kontrol etmeniz gerekiyor.


0

em ... düğmesine basmaya devam edin Shiftve ardından sağ fare düğmesine tıklayın



0

Seçimle kopyalama ve yapıştırma sırasında vardiya tutma benim için çalıştı


Bu nedir kabul cevap söylüyor. Bir kullanıcıya teşekkür etmek için - böyle bir itibara sahip olduğunuzda, gönderilerini oylayabilirsiniz.
Wai Ha Lee

0

Ekle set clipboard=unnamedBlogunuza .vimrc. Bu yüzden tüm yank, silme, değiştirme ve koyma işlemleri için isimsiz kayıt yerine '*' pano kaydını kullanacaktır (sadece fareyi etkilemediğini unutmayın).

'*' Kaydının davranışı platformunuza ve nasıl vimderlendiğinize (veya kullanıyorsanız neovim) bağlıdır.

Çalışmazsa deneyebilirsiniz set clipboard=unnamedplus, ancak bu seçenek yalnızca X11 sistemlerinde mantıklıdır.


-3

ESC modunda, mouse = a ayarlandığında, fareyi kullanarak metni seçin. Bu, vim'de görsel modu etkinleştirir. Ardından, seçilen metni çekmek için 'y' ve istediğiniz yere yapıştırmak için 'p' tuşuna basabilirsiniz. Bu sadece vim içinde olur.


hayır vim dışına yapıştırdığınızda bu işe yaramaz
barlop
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.