Copy-paste för vim fungerar inte när musen (: set mouse = a) är på?

Jag försökte kopiera klistra in något från vim till ett annat program och även från det programmet till vim med högerklicka med musen och sedan kopiera och klistra in (eller med Ctrl + v och Ctrl + c och försökte också -kommandot -versionen för mac OSX, uppenbarligen.). Men när jag försöker göra det kopieras det bara det första ordet när jag gör det från vim eller när jag kopierar från applikationen till vim, det kopierar allt, men infogar konstiga flikar och mellanslag. Jag tror att detta hände när jag bestämde mig för att sätta musen på i terminalen. Som i:

:set mouse=a 

Jag har den raden i min .vimrc -fil på iTerm (mac os x). Men är det möjligt att göra min kopia klistra in med andra program som inte finns i vim för att inte bryta med mouse=a? Eller är det åtminstone möjligt att stänga av musen medan jag kopierar och klistrar in? Jag gjorde :help musen men kommentarerna var inte användbara för mig. Jag klistrar in dem här men … mitt verktyg för kopieringspasta är trasigt!

Jag försökte :set mouse! och :set mouse=a! men dessa gjorde inget användbart … 🙁


Ytterligare information om min miljö:

Jag använder också tmux för det mesta, men jag testade det här felet / bug utan en tmux-session, det är därför jag publicerade detta främst som en vim-fråga.

Kommentarer

  • Jag kan säga att vim kan ge sig till det primära valet helt bra med y verbet. Jag vet inte ’ varför skulle du inte ’ inte bara använda det.
  • Jag skulle inte ’ inte göra det för att jag inte ’ vet inte hur jag gör det, antar jag, ber om ursäkt för min inkompetens. Jag ’ visste inte ens att det fanns tills du nämnde det. Dela din kunskap! 🙂
  • Är detta macvim ?
  • nej det är inte bara iTerm (som jag nämnde på frågan, men bra fråga dock).
  • @Pinocchio – ta en titt här: Hur att göra vim-pasta från (och kopiera till) system ’ s urklipp? .

Svar

mouse=a förhindrar möjligheten att kopiera och klistra in från vim med läsbara tecken.

Ändra mouse=a till mouse=r och det borde lösa problemet med det.

en sak jag undrar är, ändrar du konfigurationsfilen för din vim med musuppsättningen till mus = a?

originalt svar ^

Om mouse=r ger dig inte alla kopior tidigare alternativ ändra till mouse=v

Båda mouse=r och mouse=v har samma funktioner som du behöver, men beroende på vilken vimrc du använder kommer en att fungera bättre än den andra.

Kommentarer

  • har du också försökt markera texten och använda musens mittknapp för att passera till en annan plats. Som tenderar att fungera bättre när du försöker Ctrl + v och Ctrl + c
  • Jag vet inte ’ jag vet inte vad din fråga betyder: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Du menar om jag har :mouse=a på i min .vimrc-fil? Jag har :mouse=a i min .vimrc-filfil.
  • bara --with-x=yes? Jag behöver inte lägga :set --with-x=yes mouse=a eller något ing? Kan du klargöra vad du menar?
  • Låt mig undersöka om du behöver kombinera --with-x=yes till set mouse=a. När jag läste upp allt jag såg var det av sig själv i konfigurationsfilen. Men det kan vara annorlunda så jag vill försäkra mig om att jag säger det rätta som kommer att fungera för dig.
  • Tack så mycket, detta förslag fungerar som en charm med mus = v

Svar

För OS X-användare: För att kopiera klistra in med mouse=a använd alt istället för Skift för att markera texten. Då fungerar cmd-c och cmd-v som förväntat.

Hittade svaret här https://stackoverflow.com/a/4608387/671639 efter mycket googling.

Kommentarer

  • Du är Gud … …: ’)
  • det enda som fungerade för mig, tack!
  • För mig på OSX fungerar ” fn ” istället för ” shift ” eller ” alt ”.
  • Inställningen mouse=v fungerade för mig med rak cmd + c

Svar

Från https://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled/4608387

Tryck på ”shift” -tangenten medan du väljer med musen. Detta gör att musvalet beter sig som om mus = a inte var aktiverat.

Detta fungerar och har verifierats av granskare av stack-overflow som har accepterat detta som svar 🙂

Svar

Hade samma problem: kunde inte markera med musen så kunde inte kopiera och klistra in från VIM i en terminalsession till Windows-dokument och webbläsare: Gjorde följande och det fungerar nu:

: set clipboard=unnamedplus : set mouse=r 

Svar

Bharaths lösning , genom att trycka på Skift medan du kopierar, gör det, men det kommer att kopiera mer än vad du vill kopiera i händelse av numrering eller hashkommentarer.

Ett sätt att göra det även med mus = a är att använda visuellt läge genom tryck på V för enstaka markör eller Skift + V för att markera hela raden, och du kan flytta uppåt eller nedåt med pilarna och använda Y för att kopiera eller D för att klippa ut och th på ska fungera.

Kommentarer

  • @Anthon, kommer att göra, tack för förtydligandet.
  • Jag omformulerade dig själv uttalad kommentar för att göra det mer som ett svar på det sättet kommer moderna förmodligen att lämna det som det är (och du kan få lite rykte om det så att du kan kommentera). Om originalet hade varit en mer mindre korrigering hade kommentarer varit lämpligare.

Svar

Se: http://vimdoc.sourceforge.net/htmldoc/options.html

Se avsnittet Anmärkning längst ner i referensen:
När för att aktivera musen kan musknapparna fortfarande användas genom att hålla ned shift-tangenten. Detta inkluderar kopiera klistra in med hjälp av musknapparna.

*"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. 

Kommentarer

  • Tack för att du har bidragit med referensen, men , svarar det på frågan ? Om så är fallet, kan du identifiera den del av offerten som gör det och presentera en sammanfattning av det faktiska svaret?

Svar

På min Mac var det två saker som hjälpte:

  • : ställ in mus- = a
  • fn + klicka (istället för shift eller alt)

Svar

Använd dessa två rader nedan i din ~/.vimrc att använda alla fina funktioner i ett gui-mouse och klistra in i systemets urklipp med y (yank-tangent) om du inte behöver någon extra urklippsbuffert :

set mouse=a set clipboard=unnamed 

Svar

Du kan använda y för att kopiera (yank) och p för att klistra in även med :set mouse=a inställt i ~/.vimrc. Använd v + arrow keys för att markera texten. För att kopiera en hel rad snabbt, använd shift + y .

Svar

Som f eller den andra delen av din fråga var i dig angav att när du klistrar in från andra applikationer till vim lägger det till flikar / mellanslag. Försök lägga till detta i din ~ / .vimrc set paste eller i vim innan du klistrar in i normalt läge, tryck på ”shift” + ”:” och skriv ”set paste”

Svar

Två saker att lägga till:

  1. Var medveten om många gånger set mouse=v kommer inte att fungera som förväntat beroende på andra direktiv som du har ställt in före eller efter i din .vimrc -fil, det beror också på vilken terminal du kör vim från;
  2. Jag skulle rekommendera att behålla mouse=a så att du har aktiverat alla muslägen samtidigt och använd det trick som föreslagits av @BHS för att markera text medan du trycker på Skift-tangenten när du behöver klistra in den markerade texten med mitten knapp ( Kopiera text utanför Vim med set mouse=a aktiverad ).

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *