Copy-paste til vim fungerer ikke, når musen (: set mouse = a) er aktiveret?

Jeg forsøgte at kopiere indsætte noget fra vim til et andet program og også fra det program til vim ved hjælp af højreklik med musen, og kopier og indsæt derefter (eller med Ctrl + v og Ctrl + c og prøvede også -kommandoen -versionen til mac OSX, selvfølgelig.). Når jeg prøver at gøre det, kopieres det kun det første ord, når jeg gør det fra vim, eller når jeg kopierer fra applikationen til vim, det kopierer alt, men indsætter mærkelige faner og mellemrum. Jeg tror, dette skete, da jeg besluttede at sætte musen på i terminalen. Som i:

:set mouse=a 

Jeg har den linje på min .vimrc -fil på iTerm (mac os x). Er det dog muligt at lave min kopipasta med andre applikationer, der ikke er i vim for ikke at bryde med mouse=a på? Eller er det i det mindste muligt at slukke for min mus, mens jeg kopierer? Jeg gjorde :help musen, men kommentarerne var ikke nyttige for mig. Jeg ville indsætte dem her, men … mit værktøj til kopipasta er brudt!

Jeg prøvede :set mouse! og :set mouse=a! men disse gjorde intet nyttigt … 🙁


Yderligere oplysninger om mit miljø:

Jeg bruger også tmux det meste af tiden, men jeg testede denne fejl / bug uden en tmux-session, derfor sendte jeg dette hovedsageligt som et vim-spørgsmål.

Kommentarer

  • Jeg kan fortælle dig, at vim er i stand til at rykke til det primære valg fint ved hjælp af y verbet. Jeg ved ikke ‘ hvorfor du ikke ville ‘ ikke bare bruge det.
  • Jeg ville ikke ‘ t gøre det, fordi jeg ikke ‘ Jeg ved ikke, hvordan man gør det, undskyld for min inkompetence. Jeg vidste ikke ‘ ikke engang, at der eksisterede, indtil du nævnte det. Del venligst din viden! 🙂
  • Er dette macvim ?
  • nej det er ikke bare iTerm (som jeg nævnte på spørgsmålet, men dog et godt spørgsmål).
  • @Pinocchio – se her: Hvordan at lave vim-pasta fra (og kopiere til) system ‘ s udklipsholder? .

Svar

mouse=a forhindrer muligheden for at kopiere og indsætte vim med læsbare tegn.

Skift mouse=a til mouse=r, og det skulle løse dit problem med det.

en ting, jeg spekulerer på, er, ændrer du konfigurationsfilen til din vim med musen indstillet til mus = a?

originalt svar ^

Hvis mouse=r giver dig ikke alle kopi tidligere valgmuligheder, skift til mouse=v

Begge mouse=r og mouse=v har de samme funktioner, som du har brug for, men afhængigt af den vimrc, du bruger, fungerer den ene bedre end den anden.

Kommentarer

  • har du også prøvet at fremhæve teksten og bruge musens midterste knap til at gå forbi et andet sted. Der har en tendens til at fungere bedre, når du prøver Ctrl + v og Ctrl + c
  • Jeg ved ikke ‘ Jeg ved ikke, hvad dit spørgsmål betyder: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Du mener, hvis jeg har :mouse=a i min .vimrc-fil? Jeg har :mouse=a i min .vimrc-filfil.
  • bare --with-x=yes? Jeg behøver ikke at sætte :set --with-x=yes mouse=a eller noget ing? Kan du afklare, hvad du mener?
  • Lad mig undersøge, om du har brug for at kombinere --with-x=yes til set mouse=a. Da jeg læste op på det, så jeg alt, det var i sig selv i konfigurationsfilen. Men det kunne være anderledes, så jeg vil være sikker på, at jeg fortæller dig den rigtige ting, der fungerer for dig.
  • Mange tak, dette forslag fungerer som en charme med musen = v

Svar

For OS X-brugere: For at kopiere pasta med mouse=a skal du bruge alt i stedet for Skift for at vælge teksten. Derefter fungerer cmd-c og cmd-v som forventet.

Fandt svaret her https://stackoverflow.com/a/4608387/671639 efter en masse googling.

Kommentarer

  • Du er Gud … …: ‘)
  • det eneste der fungerede for mig, tak!
  • For mig på OSX fungerer ” fn ” i stedet for ” shift ” eller ” alt “.
  • Indstilling mouse=v fungerede for mig med lige cmd + c

Svar

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

Tryk på “shift” -tasten, mens du vælger med musen. Dette får musevalg til at opføre sig som om mus = a ikke var aktiveret.

Dette fungerer og er blevet bekræftet af korrekturlæsere af stack-overflow, der har accepteret dette som svar 🙂

Svar

Havde det samme problem: kunne ikke fremhæve ved hjælp af musen, så kunne ikke kopiere og indsætte fra VIM i en terminalsession til Windows-dokument og browser: Gjorde følgende, og det fungerer nu:

: set clipboard=unnamedplus : set mouse=r 

Svar

Bharaths løsning , ved at trykke på Shift under kopiering, gør det, men det kopierer mere end hvad du gerne vil kopiere i tilfælde af nummerering eller hash-kommentarer.

En måde at gøre det på selv med mus = a er at bruge visuel tilstand ved ved at trykke på V for en enkelt markør eller Shift + V for at markere hele linjen, og du kan flytte op eller ned med pile og bruge Y for at kopiere eller D for at klippe og th at skulle fungere.

Kommentarer

  • @Anthon, vil gøre, tak for afklaringen.
  • Jeg omformulerede dig selv udtalt kommentar for at gøre det mere som et svar på den måde, mods vil sandsynligvis lade det være som det er (og du kan få noget ry på det, så du kan kommentere). Hvis originalen havde været en mere mindre korrektion, ville kommentering have været mere passende.

Svar

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

Se på bemærkningsafsnittet nederst i referencen:
Når for at aktivere musen kan museknapperne stadig bruges ved at holde shift-tasten nede. Dette inkluderer kopipasta ved hjælp af museknapper.

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

  • Tak for din bidrag, men , svarer det på spørgsmålet ? Hvis ja, kan du identificere den del af citatet, der gør det, ved at præsentere et resumé af det faktiske svar?

Svar

På min Mac, hvad hjalp de to ting:

  • : indstil mus- = a
  • fn + klik (i stedet for shift eller alt)

Svar

Brug disse to linjer nedenfor i din ~/.vimrc alle pæne funktioner i et gui-mouse og indsæt i systemudklipsholderen ved hjælp af y (yank-nøgle), hvis du ikke virkelig har brug for yderligere udklipsholderbuffere :

set mouse=a set clipboard=unnamed 

Svar

Du kan bruge y for at kopiere (yank) og p for at indsætte selv med :set mouse=a indstillet i ~/.vimrc. Brug v + arrow keys for at fremhæve teksten. Hvis du vil kopiere en hel linje hurtigt, skal du bruge shift + y .

Svar

Som f eller den anden del af dit spørgsmål, hvor i dig angav, at når du indsætter fra andre applikationer til vim, tilføjer det faner / mellemrum. Prøv at tilføje dette til din ~ / .vimrc sætpasta eller i vim, inden du klistrer i normal tilstand, tryk på “shift” + “:” og skriv “set paste”

Svar

To ting at tilføje:

  1. Vær opmærksom mange gange set mouse=v fungerer ikke som forventet afhængigt af andre direktiver, du har angivet før eller efter i din .vimrc fil, det afhænger også af, hvilken terminal du kører vim fra;
  2. Jeg vil anbefale at beholde mouse=a så du har al musetilstand aktiveret på samme tid og brug det trick, der er foreslået af @BHS til at fremhæve tekst, mens du trykker på Skift-tasten, når du skal indsætte den fremhævede tekst ved hjælp af den midterste mus knap ( Kopiering af tekst uden for Vim med set mouse=a aktiveret ).

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *