Po włączeniu set mouse=a
tekst skopiowany w Vimie nie będzie wklejany poza Vimem. Czy ktoś wie, jak to naprawić?
W tym przypadku zaznaczanie tekstu myszą włącza tryb wizualny i wyłącza Copy
opcję w menu podręcznym:
vim
configuration
mouse
copy-paste
lyuba
źródło
źródło
+clipboard
amouse=a
, będzie można skopiować / wklej z / do vim bez użycia terminala menu podręczne. Możesz sprawdzić, czyclipboard
można używaćvim --version
.mouse=a
nie jest opcją kompilacji, jest czymś w vimrc B) Kiedy vim został skompilowany+clipboard
, pozwala na kopiowanie / wklejanie, gdy:set number
jest włączony, i bez kopiowania / wklejania liczb, chociaż być może nadal musisz coś zrobić mapowania C) Nie trzeba samodzielnie kompilować VIM-a, może on być włączony w vimie na niektórych menedżerach pakietów obsługiwanych przez jakikolwiek system operacyjny. Moja odpowiedź wspomina o tym osx.xsel
działa również dla Ciebie, możesz wybrać tekst za pomocą edytora lub myszy i nacisnąć,ctrl+c
aby skopiować tekst, tak przy okazji, dla neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165Odpowiedzi:
Naciśnij shiftpodczas wyboru za pomocą myszy. To sprawi, że wybór myszy będzie zachowywał się tak, jakby
mouse=a
nie został włączony.Uwaga: ta sztuczka dotyczy także „wklejania środkowego przycisku”: jeśli chcesz wkleić tekst vim, który został wybrany na zewnątrz, naciśnij shiftpodczas klikania środkowego przycisku. Po prostu upewnij się, że tryb wstawiania jest włączony, gdy to zrobisz (możesz także chcieć
:set paste
uniknąć nieoczekiwanych efektów).OS X (mac): przytrzymaj alt / opcję podczas wybierania ( źródło )
źródło
Fn
kluczem jest właściwa droga. To znaczy, (zmouse=a
włączonym) zaznaczaniem tekstu podczas naciskaniaFn
klawisza, a następnie użyj CMD + C, aby skopiować i wkleić w dowolnym miejscu.Zastosowanie ", +, ypo dokonaniu selekcji wizualnej. I tak nie powinieneś używać polecenia kopiowania terminala, ponieważ kopiuje to, co terminal widzi zamiast rzeczywistej zawartości. Oto, co to robi:
+
do następnego usunięcia, szarpnięcia lub wprowadzenia. Rejestr o nazwie+
jest rejestrem specjalnym, jest to rejestr schowka X11. (W innych systemach,*
zamiast tego użyłbyś, jak sądzę, zobacz:help clipboard
i:help x11-selection
)Możesz to zmapować w następujący sposób:
Następnie zaznacz coś za pomocą myszy i naciśnij, Control-Caby je skopiować.
Ta funkcja działa tylko wtedy, gdy Vim został skompilowany z
+xterm_clipboard
opcją. Uruchom,vim --version
aby dowiedzieć się, czy ma.źródło
"*y
zależności od systemu operacyjnego.+clipboard
? A co+clipboard
zxterm_clipboard
wyłączeniem?Zamiast
set mouse=a
używaćset mouse=r
w .vimrcźródło
Na OSX użyj fnzamiast shift.
źródło
option
kluczem, który jestalt
kluczowym odpowiednikiem na hoście MacOS. Był to jednak zdalny terminal na debian9. nie pracował przez dodanie jednej zset mouse=a
/set mouse=r
w/etc/vim/vimrc
na pilocie.W Ubuntu można używać X-Term powiązań kopiuj i wklej w VIM (Ctrl-Shift-C i Ctrl-Shift-V) na tekście, który został podświetlony za pomocą klawisza Shift.
źródło
Inną opcją OSX-Mac jest odznaczenie
View->Allow Mouse Reporting
(lub naciśnięcie ⌘-R, aby przełączyć). Pozwala to na przełączanie między interakcją myszy a wyborem myszy, co może być przydatne podczas wybierania i kopiowania / wklejania kilku bitów, ponieważ nie masz aby przytrzymać klawisz modyfikatora, aby to zrobić.Uwaga dla Multilinii z numerami linii:
Zwykle mam włączone numery linii, więc to również skopiuje numery linii, jeśli wybierzesz wiele linii. Jeśli chcesz skopiować wiele linii bez numerów linii, wyłącz numery za pomocą,
:set nonu
a następnie możesz je:set nu
ponownie włączyć po zakończeniu kopiowania.źródło
Możesz użyć
:set mouse&
w linii poleceń vim, aby włączyć kopiowanie / wklejanie tekstu zaznaczonego za pomocą myszy. Następnie możesz po prostu użyć środkowego przycisku myszy lub shiftinsertwkleić go.źródło
:set number
, podświetla liczby. Więc niewiele dobrego.set mouse=a
Częścią problemu są ustawienia kompilacji, z którymi vim został skompilowany.
vim --version
pokazuje te.W OSX domyślny vim ma
-clipboard
Ale potrzebujesz+clipboard
Na OSX możesz i najwyraźniej ogólnie powinieneś używać Macvima. Można to zrobić
brew cask install macvim
, że trzeba+clipboard
.Będziesz miał dwa vima.
Uruchamianie vima uruchomi macvima, ponieważ
/usr/local/bin
powinno być wcześniej/usr/bin
na ścieżce, choć możesz to sprawdzić za pomocąwhich vim
.Uruchamianie vima (aby uruchomić Macvima), jest w porządku, ale możesz chcieć odwzorować vi na macvim, ponieważ w przeciwnym razie uruchomienie vi pozostaje na domyślnym vimie! Możesz przepisać lub usunąć (za pomocą rm) i ponownie utworzyć łącze vi sym za pomocą ln. Aby to zrobić bez błędu „operacja niedozwolona”, musisz (tymczasowo) wyłączyć SIL. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-aka-rootless-on-macos-os-x .
macvim ma,
+clipboard
jak pokazano przezvim --version
Oto praca
~/.vim/vimrc
z tylko wymaganymi liniami.Domyślny klucz wiodący to ukośnik odwrotny.
Przeczytałem sugestię, że należy użyć klawisza wiodącego .. (z pewnością kontrola ma już wiele używanych kluczy, więc sugerowano, aby nie używać kontroli. Nie wiem, czy dotyczy to również klawisza polecenia, ale w każdym razie).
Dzięki wspomnianemu mapowaniu
\c
zrobi to,"+y
co skopiuje z rejestru znanego jako +, do schowka. I\v
wklei z rejestru znanego jako +.To jest kopia / wklej, która działa między oknami.
Może wymagać innego systemu operacyjnego
"*
niż"+
źródło
-xterm_clipboard
. Być może+xterm_clipboard
byłoby to w jakiś sposób korzystne, ale nie ma znaczenia dla tego rozwiązania.Jeśli używasz sesji Putty, to automatycznie kopiuje zaznaczenie. Jeśli użyliśmy opcji „ustaw mysz = a” w vimie, wybranie za pomocą Shift + przeciągnięcie myszą automatycznie zaznacza tekst. Musisz sprawdzić w X-term.
źródło
em ... Naciskaj przycisk, Shifta następnie kliknij prawym przyciskiem myszy
źródło
Przypadkowo wyjaśniłem, jak wyłączyć
set mouse=a
, kiedy ponownie przeczytałem pytanie i dowiedziałem się, że OP nie chciał go wyłączyć. W każdym razie dla każdego, kto szuka sposobuset mouse=
centralnego wyłączenia myszy ( ), zostawiam odniesienie do mojej odpowiedzi tutaj: https://unix.stackexchange.com/a/506723/194822źródło
Trzymanie zmiany podczas kopiowania i wklejania z zaznaczeniem działało dla mnie
źródło
Dodaj
set clipboard=unnamed
do swojego.vimrc
. Będzie więc używał rejestru schowka „*” zamiast rejestru bez nazwy dla wszystkich operacji szarpania, usuwania, zmiany i wstawiania (pamiętaj, że nie wpływa to tylko na mysz).Zachowanie rejestru „*” zależy od platformy i tego, w jaki sposób
vim
jej skompilowania (lub korzystania z niej)neovim
).Jeśli to nie działa, możesz spróbować
set clipboard=unnamedplus
, ale ta opcja ma sens tylko w systemach X11.źródło
W trybie ESC, gdy ustawisz mysz = a, zaznacz tekst za pomocą myszy. Pozwoliłoby to włączyć tryb wizualny w vimie. Następnie możesz nacisnąć „y”, aby szarpnąć zaznaczony tekst i „p”, aby go wkleić w dowolnym miejscu. Dzieje się tak tylko w vimie.
źródło