Kopiuj-wklej dla Vima nie działa, gdy mysz (: set mouse = a) jest włączona?

Próbowałem skopiować coś wklejonego z Vima do innej aplikacji, a także z tej aplikacji do vim używając kliknij prawym przyciskiem myszy, a następnie skopiuj i wklej (lub za pomocą Ctrl + v i Ctrl + c i również próbował oczywiście wersja Command dla systemu Mac OSX). Jednak gdy próbuję to zrobić, kopiuje tylko pierwsze słowo, gdy robię to z vim lub gdy kopiuję z aplikacji do vim, kopiuje wszystko, ale wstawia dziwne tabulatory i spacje. Myślę, że stało się to, gdy zdecydowałem się włączyć mysz w terminalu. Na przykład:

:set mouse=a 

Mam tę linię w moim pliku .vimrc na iTerm (mac os x). Czy jest jednak możliwe, aby moja kopia wklejona była w innych aplikacjach, których nie ma w vim, aby nie przerywać działania z włączonym mouse=a? A może przynajmniej można wyłączyć mysz podczas kopiowania i wklejania? Zrobiłem :help myszką, ale komentarze nie były dla mnie przydatne. Wklejałbym je tutaj, ale … moje narzędzie kopiowania wklejania jest zepsute!

Próbowałem :set mouse! i :set mouse=a! ale te nie dały nic użytecznego … 🙁


Dodatkowe informacje o moim środowisku:

Używam też tmux przez większość czasu, chociaż testowałem ten błąd / błąd bez sesji tmux, dlatego opublikowałem to głównie jako pytanie vima.

Komentarze

  • Mogę Ci powiedzieć, że jest w stanie łatwo przejść do wyboru podstawowego, używając czasownika y. Nie ' nie wiem dlaczego nie ' po prostu tego użyjesz.
  • Nie ' nie zrobiłbym, ponieważ nie ' Chyba nie wiem, jak to zrobić, przepraszam za moją niekompetencję. Nie ' nawet nie wiedziałem, że istniało, dopóki o tym nie wspomniałeś. Udostępnij wiedza! 🙂
  • Czy to macvim ?
  • nie, to nie tylko iTerm (jak wspomniałem w pytaniu, ale dobre pytanie).
  • @Pinocchio – spójrz tutaj: Jak aby vim wkleił (i skopiował do) system ' schowka? .

Odpowiedź

mouse=a uniemożliwia kopiowanie i wklejanie z vima z czytelnymi znakami.

Zmień do mouse=r i to powinno rozwiązać Twój problem.

Zastanawiam się tylko, czy zmieniasz plik konfiguracyjny dla swojego vima z myszą ustawioną na mouse = a?

oryginalna odpowiedź ^

Jeśli mouse=r nie daje wszystkich opcji kopiowania z przeszłości, zmienia je na mouse=v

Oba mouse=r i mouse=v mają te same funkcje, których potrzebujesz, ale w zależności od używanego vimrc, jedna będzie działać lepiej niż druga.

Komentarze

  • próbowałeś także podświetlić tekst i użyć środkowego przycisku myszy, aby przejść w inne miejsce. To zwykle działa lepiej, gdy spróbujesz użyć Ctrl + V i Ctrl + c
  • Nie ' nie wiem, co oznacza Twoje pytanie: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Masz na myśli, jeśli mam :mouse=a w moim pliku .vimrc? Mam :mouse=a w moim pliku .vimrc.
  • tylko --with-x=yes? Nie muszę wstawiać :set --with-x=yes mouse=a ani czegoś takiego ing? Czy mógłbyś wyjaśnić, co masz na myśli?
  • Pozwól, że zbadam, czy musisz połączyć --with-x=yes z set mouse=a. Kiedy czytałem o tym, wszystko, co zobaczyłem, było to, że było samo w pliku konfiguracyjnym. Ale może być inaczej, więc chcę się upewnić, że powiem ci właściwą rzecz, która będzie dla ciebie odpowiednia.
  • Wielkie dzięki, ta sugestia działa jak urok z myszką = v

Odpowiedź

Dla użytkowników OS X: Aby skopiować wklej za pomocą mouse=a, użyj alt zamiast Shift , aby zaznaczyć tekst. Następnie cmd-c i cmd-v działają zgodnie z oczekiwaniami.

Odpowiedź znajdziesz tutaj https://stackoverflow.com/a/4608387/671639 po wielu googlach.

Komentarze

  • Jesteś Bogiem … …: ')
  • jedyna rzecz, która działała dla mnie, dzięki!
  • U mnie działa na OSX ” fn ” zamiast ” shift ” lub ” alt „.
  • Ustawienie mouse=v działało dla mnie z prostym cmd + c

Odpowiedź

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

Naciśnij klawisz „Shift” podczas zaznaczania myszą. Spowoduje to, że wybór myszy będzie zachowywał się tak, jakby mouse = a nie była włączona.

To działa i zostało zweryfikowane przez recenzentów przepełnienia stosu, którzy zaakceptowali to jako odpowiedź 🙂

Odpowiedź

Wystąpił ten sam problem: nie można podświetlić za pomocą myszy, więc nie można skopiować i wkleić z VIM w sesji terminala do dokumentu i przeglądarki Windows: Czy następujący i teraz działa:

: set clipboard=unnamedplus : set mouse=r 

Odpowiedź

rozwiązanie Bharatha , naciskając Shift podczas kopiowania, zrobi to, ale skopiuje więcej niż to, co chciałbyś skopiować w przypadku numeracji lub hash komentarzy.

Jednym ze sposobów, aby to zrobić, nawet z mouse = a , jest użycie trybu wizualnego przez naciśnięcie V dla pojedynczego kursora lub Shift + V dla podświetlenia całej linii i możesz poruszać się w górę lub w dół za pomocą strzałek i używać Y do skopiowania lub D do wycięcia i th w powinno działać.

Komentarze

  • @Anthon, Will do, Dzięki za wyjaśnienie.
  • Przeformułowałem twoje zdanie- wymówiony komentarz, aby bardziej przypominał odpowiedź, w ten sposób mody prawdopodobnie pozostawią ją tak, jak jest (i możesz zyskać na nim reputację, aby móc komentować). Gdyby oryginał był mniejszą poprawką, komentarz byłby bardziej odpowiedni.

Odpowiedź

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

Zapoznaj się z sekcją Uwagi na dole odniesienia:
Kiedy po włączeniu myszy przyciski myszy mogą być nadal używane przez przytrzymanie klawisza Shift. Obejmuje to kopiowanie i wklejanie za pomocą przycisków myszy.

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

Komentarze

  • Dziękujemy za przesłanie tego odniesienia, ale , czy odpowiada na pytanie ? Jeśli tak, czy możesz zidentyfikować część cytatu, która to robi, przedstawiając podsumowanie rzeczywistej odpowiedzi?

Odpowiedź

Na moim Macu pomogły te dwie rzeczy:

  • : set mouse- = a
  • fn + click (zamiast shift lub alt)

Odpowiedź

Użyj tych dwóch wierszy poniżej w swoim ~/.vimrc do użycia wszystkie fajne funkcje gui-mouse i wklej do schowka systemowego za pomocą y (klawisz Yank), jeśli naprawdę nie potrzebujesz dodatkowych buforów schowka :

set mouse=a set clipboard=unnamed 

Odpowiedź

Możesz użyć y do kopiowania (yank) i p do wklejania nawet z :set mouse=a ustawionym w ~/.vimrc. Użyj v + arrow keys, aby podświetlić tekst. Aby szybko skopiować całą linię, użyj shift + y .

Odpowiedź

Jak f lub druga część twojego pytania, w której określiłeś, że podczas wklejania z innych aplikacji do vima dodaje tabulatory / spacje. Spróbuj dodać to do swojego zestawu ~ / .vimrc wklej lub w vimie przed wklejeniem w trybie normalnym naciśnij „shift” + „:” i wpisz „set paste”

Odpowiedz

Dwie rzeczy do dodania:

  1. Pamiętaj, że wiele razy set mouse=v nie będzie działać zgodnie z oczekiwaniami w zależności od inne dyrektywy, które ustawiłeś przed lub po w pliku .vimrc, zależy to również od terminala, z którego uruchamiasz vima;
  2. Zalecałbym pozostawienie mouse=a, więc masz włączony cały tryb myszy w tym samym czasie i użyj sztuczki zaproponowanej przez @BHS, aby podświetlić tekst, naciskając klawisz Shift, gdy musisz wkleić podświetlony tekst środkową myszą button ( Kopiowanie tekstu poza Vima z włączonym set mouse=a ).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *