Nie można skopiować do schowka z Vima

28

Używam Vima 7.3 pod Linux Mint 13 (używając MATE) i nie mogę zapisać tekstu do schowka systemowego. Uruchamiam Vima w terminalu i kopiuję tekst z terminala przy pomocy CTRLINSERT. Kiedy zaznaczam tekst w Vimie (za pomocą myszy lub w trybie wizualnym), CTRLINSERTnie kopiuję żadnego tekstu. Ponadto po kliknięciu prawym przyciskiem myszy opcja Kopiowanie jest wyszarzona. Ponadto nie mogę pisać do bufora systemowego, szarpiąc do odpowiedniego rejestru za pomocą komend vim. Jednak jestem w stanie wkleić w trybie wstawiania (używając SHIFTINSERTwklejania lub kliknięcia prawym przyciskiem myszy). Jestem również w stanie skopiować tekst bezpośrednio z terminala przy użyciu tej samej techniki, po prostu nie tekstu z Vima.

Oto mój obecny ~ / .vimrc . Odpowiednia część jest najbardziej prawdopodobna set clipboard=autoselect,unnamed,exclude:cons\|linux. Jeśli umieszczę finishna górze mojego ~ / .vimrc, mam ten sam problem, więc myślę, że linia jest zła, ale próbowałem set clipboard=unnamedi miałem takie samo zachowanie.

Czy może istnieć inny plik konfiguracyjny wpływający na zachowanie Vima? Jak mogę zmienić mój ~ / .vimrc, aby umożliwić mi kopiowanie tekstu z Vima?

maksim
źródło

Odpowiedzi:

55

Uważam, że problem z kopiowaniem jest spowodowany:

mouse=a 

w twoim .vimrc To ustawia vima w tryb wizualny za każdym razem, gdy wybierzesz coś za pomocą myszy. I z jakiegoś szalonego powodu nie można kopiować w trybie wizualnym. Można go obejść, przytrzymując klawisz Shift podczas zaznaczania tekstu, aby nie wchodzić w tryb wizualny, umożliwiając korzystanie z menu kopiowania.

lub możesz zmienić na:

:set mouse=v

i kopiowanie będzie działać ponownie. dodaj go do pliku ~ / .vimrc, jeśli chcesz, aby był trwały


źródło
2
Chociaż może to faktycznie rozwiązać ich problem, bardziej przydatne byłoby wyjaśnienie, dlaczego to działa . Bez tego twoją odpowiedzią jest po prostu mówienie komuś, by nacisnął dwa razy zielony przycisk - może działać, może nie, ale ich nie oświeca.
voretaq7
Dzięki, że to rozwiązało. Wyjaśnienie dodane po komentarzu voretaq7 również bardzo pomogło!
Działa to również w przypadku Cygwin.
Dave Jarvis,
1
Ten tryb podświetli wszystko, więc jeśli chcę skopiować kilka wierszy, kopiuję również numery wierszy i całe puste miejsce po każdym wierszu, aż do końca ekranu. Czy istnieje sposób, aby wybrał tylko odpowiednią treść (jak działa podświetlanie, kiedy mouse=a)?
Dennis
Dobra odpowiedź. Zaletą: więcej trybów myszy tutaj:help mouse
Dr Beco
10

sudo apt-get install vim-gtk prawdopodobnie rozwiąże ten problem dla innych pracowników Google.

Dobry stary terminal vim nie ma dostępu do schowka, który jest częścią systemu X Windows. Instalacja vim-gtkdaje vimowi dostęp do modyfikacji i przeglądania schowka.

Cory Klein
źródło
2
Prace! Na Debian Buster (teraz w fazie testów) zainstalowałem vim-gtk, a następnie mój wiersz poleceń vim w xterm pozwolił mi użyć buforów *i +do uzyskania dostępu do buforów x Window. Instalacja vim-gtk korzysta z alternatyw Debiana do ustawienia vim -> /usr/bin/vim.gtk.
RobertL
0

Terminal nic nie wie o selekcjach vima, więc nie oczekuj, że będzie to pomocne. Będziesz potrzebował vima, aby zbudować go przeciwko X (np. gvim -v), A następnie szarpać i +rejestrować.

Ignacio Vazquez-Abrams
źródło
3
vim-gtkPakiet w Ubuntu zawiera schowka wsparcie (nawet gdy wykonywany jak vimw terminalu).
mgorven
Uzgodnione i potwierdzone w Debianie Buster (obecnie w fazie testów) Zainstalowałem vim-gtk, a następnie mój wiersz poleceń vim w xterm pozwolił mi używać buforów * i +, aby uzyskać dostęp do buforów x Window. Instalacja vim-gtk używa alternatyw Debiana do ustawienia vim -> /usr/bin/vim.gtk.
RobertL
0

tylko gvimna arch Linux, jeśli ktoś chce wiedzieć. Zobacz także neovim(i wsparcie dla python-neovim& python2-neovimComplete for You Complete itp.).

dylnmc
źródło
Spróbuj użyć gvim przez ssh.
hopeseekr