Vim için kopyala-yapıştır, fare (: set mouse = a) açıkken çalışmıyor mu?


52

Bir şeyi vim'den başka bir uygulamaya ve ayrıca bu uygulamadan vimfareyle sağ tıklayıp kopyalayıp yapıştırmaya (veya Ctrl+ vve Ctrl+ ile cve ayrıca CommandMac OSX'in sürümünü açıkça denemeye) kullanmaya kadar kopyalamaya çalışıyordum . Ancak, bunu yapmayı denediğimde, yalnızca ilk kelimeyi vimkopyaladığımda veya uygulamadan vimkopyaladığımda, her şeyi kopyalar, ancak garip sekmeler ve boşluklar ekler. Sanırım bu fareyi terminale koymaya karar verdiğimde oldu. De olduğu gibi:

:set mouse=a

.vimrcİTerm'deki dosyamda bu satır var (mac os x). Olsa da, benim kopya olmayan diğer uygulamalarla yapıştırmak yapmak mümkündür vimile kırmamaya mouse=aüzerinde? Ya da kopya hamuru yaparken faremi kapatmak mümkün mü? :helpFare yaptım ama yorumlar benim için kullanışlı değildi. Onları buraya yapıştırırdım ama ... kopyalama yapıştırma aracım bozuldu!

Denedim :set mouse!ve :set mouse=a!bunlar işe yaramadı ... :(


Ortamımın ek bilgileri:

Ben de çoğu zaman tmux kullanıyorum, ancak tmux oturumu olmadan bu hatayı test ettim, bu yüzden bunu çoğunlukla vim sorusu olarak gönderdim.


4
Bunun vimfiilden faydalanarak Birincil Seçime itiraz edebildiğini söyleyebilirim y. Bunu neden kullanmayacağını bilmiyorum.
HalosGhost

1
Bunu yapmazdım çünkü nasıl yapacağımı bilmiyorum, beceriksizliğim için özür dilerim. Sen söyleyene kadar var olduğunu bile bilmiyordum. Lütfen bilginizi paylaşın! :)
Pinocchio

Bu macvim mi?
Patrick

hayır onun sadece iTerm değil (soru üzerinde dediğim gibi, ama iyi bir soru olsa da).
Pinokyo

Yanıtlar:


66

mouse=a vim'den okunabilir karakterlerle kopyalama ve yapıştırma yeteneğini önler.

Değişim mouse=aiçin mouse=rve o ile sorunu çözecektir.

merak ettiğim bir şey, fareniz için fareyle ayarlandığında vim'iniz için config dosyasını değiştiriyor musunuz?

yatay cevap ^

Eğer mouse=rseçenekler olarak değiştirin geçmiş sen iyi kopyasını vermezmouse=v

Her ikisi de mouse=rve mouse=vihtiyacınız olan aynı işleve sahip, ancak kullanmakta olduğunuz vimrc'e bağlı olarak diğerinden daha iyi çalışacaktır.


ayrıca metni vurgulamayı denediniz ve başka bir yere yapıştırmak için fare orta düğmesini kullandınız. Ctrl + v ve Ctrl + c
bgrif

Sorunuzun ne anlama geldiğini bilmiyorum: .vimrc dosyamda one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a?varsa :mouse=a, yani ? :mouse=a.Vimrc dosyamda var .
Pinocchio

1
Sadece --with-x=yes? Yapmam :set --with-x=yes mouse=aya da başka bir şey yapmam gerekmez mi? Ne demek istediğini açıklayabilir misin?
Pinocchio

1
Birleştirmek gerekiyorsa bana araştırsın --with-x=yesiçin set mouse=a. Hepsini okuduğumda tek gördüğüm ayar dosyasının kendisiydi. Ama farklı olabilir, bu yüzden sana işine yarayacak doğru şeyi söylediğimden emin olmak istiyorum.
bgrif

1
Çok teşekkürler, bu öneri fare ile bir çekicilik gibi çalışmak = v
Pamungkas Jayuda

21

OS X kullanıcıları için: Metni seçmek yerine yapıştırmayı kopyalamak için mouse=akullanın . Sonra ve beklendiği gibi çalışın.altShiftcmd-ccmd-v

Bu cevabı burada çok fazla googling sonrasında https://stackoverflow.com/a/4608387/671639 buldu .


Sen Tanrı'sın ......: ')
Aralık'ta 16:54

Benim için çalışan tek şey, teşekkürler!
Don

3
Benim için OSX üzerinde "shift" veya "alt" yerine "fn" çalışıyor.
ssasa


6

Bharath , Shiftfotokopi çekerken bastırarak çözümü yapacak, ancak numaralandırma veya özetleme durumunda kopyalamak istediğinizden daha fazlasını kopyalayacaktır.

Fare = a ile bunu yapmanın bir yolu, Vtek satırlı imleç veya Shift+ tuşuna basarak Vtam çizgi vurgulamak için görsel mod kullanmaktır ; oklarla yukarı veya aşağı hareket edebilir ve Ykopyalamak veya Dkesmek için kullanmanız gerekir.


@Anthon, yapacak, açıklama için teşekkürler.
amrx

1
Kendini telaffuz eden yorumunuzu, modların muhtemelen olduğu gibi bırakacağı bir şekilde cevaplamak için değiştirdim (ve yorum yapabilmeniz için biraz itibar kazanabilirsiniz). Orijinal daha küçük bir düzeltme olsaydı, yorum yapmak daha uygun olurdu.
Anthon

5

Aynı sorunu vardı: fareyi kullanarak vurgulayamıyordu, bu yüzden VIM'den bir terminal oturumunda VIM'den Windows belge ve tarayıcıya kopyalayıp yapıştıramadı: Aşağıdakileri yaptı ve şimdi çalışıyor:

: set clipboard=unnamedplus
: set mouse=r

4

Bakınız: http://vimdoc.sourceforge.net/htmldoc/options.html

Referansın altındaki Not bölümüne bakın:
Fareyi etkinleştirirken, fare tuşları, üst karakter tuşunu basılı tutarak kullanılabilir. Bu, fare düğmelerini kullanarak kopyala yapıştır özelliğini içerir.

*'mouse'* *E538*
'mouse'         string  (default "", "a" for GUI, MS-DOS and Win32)
            global
            {not in Vi}
    Enable the use of the mouse.  Only works for certain terminals
    (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
    sysmouse and Linux console with gpm).  For using the mouse in the
    GUI, see |gui-mouse|.
    The mouse can be enabled for different modes:
        n   Normal mode
        v   Visual mode
        i   Insert mode
        c   Command-line mode
        h   all previous modes when editing a help file
        a   all previous modes
        r   for |hit-enter| and |more-prompt| prompt
    Normally you would enable the mouse in all four modes with:
        :set mouse=a
    When the mouse is not enabled, the GUI will still use the mouse for
    modeless selection.  This doesn't move the text cursor.

    See |mouse-using|.  Also see |'clipboard'|.

    Note: When enabling the mouse in a terminal, copy/paste will use the
    "* register if there is access to an X-server.  The xterm handling of
    the mouse buttons can still be used by keeping the shift key pressed.
    Also see the 'clipboard' option.

1
Bu referansa katkıda bulunduğunuz için teşekkür ederiz, ancak soruyu cevaplıyor mu? Öyleyse, gerçek cevabın bir özetini sunarak, teklifin bu kısmını belirleyebilir misiniz?
G-Man

0

Sorunuzun ikinci bölümünde ise, diğer uygulamalardan vim'e yapıştırırken sekmeler / boşluklar eklendiğini belirtti. Normal modda yapıştırmadan önce bunu ~ / .vimrc set pastanıza veya vim'e eklemeyi deneyin "shift" + ":" tuşlarına basın ve "set paste" yazın.


0

Sen kullanabilirsiniz y(yank) kopyalamak ve phatta yapıştırmak için :set mouse=asete ~/.vimrc. Metni vurgulamak için v+ kullanın arrow keys. Tüm çizgiyi hızlıca kopyalamak için shift+ tuşunu kullanın y.


0

Mac'imde yardımcı olan bu iki şeydi:

  • : fareyi ayarlayın
  • fn + klik (shift veya alt yerine)

0

Herhangi bir ek pano arabelleğine gerek duymuyorsanız, a'nın ~/.vimrctüm güzel özelliklerini kullanmak gui-mouseve sistem panosuna yapıştırmak için y(yank anahtarı) kullanarak aşağıdaki iki satırı kullanın :

set mouse=a
set clipboard=unnamed
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.