Kopiowanie tekstu poza Vimem z włączonym ustawieniem mysz = a
Po włączeniu set mouse=a
tekst skopiowany wewnątrz Vima nie będzie Wklejany poza Vim. Czy ktoś wie jak to naprawić?
Tutaj zaznaczenie tekstu myszką włącza tryb wizualny i wyłącza opcję Copy
w menu podręcznym:
14 answers
Naciśnij shift podczas wybierania myszką. Spowoduje to, że wybór myszy będzie zachowywał się tak, jakby mouse=a
nie było włączone.
Uwaga: ta sztuczka dotyczy również "middle button paste": jeśli chcesz wkleić tekst w Vimie, który został zaznaczony na zewnątrz, naciśnij shift podczas klikania środkowego przycisku. Po prostu upewnij się, że tryb wstawiania jest aktywny, gdy to zrobisz (możesz również chcieć :set paste
, aby uniknąć nieoczekiwanych efektów).
OS X (mac): przytrzymaj alt / option podczas wybierania (source)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:04:24
Użycie ", +, y po dokonaniu wizualnego wyboru. I tak nie powinieneś używać polecenia kopiowania terminala, ponieważ kopiuje to, co Terminal widzi zamiast rzeczywistej zawartości. Oto co to robi:
-
",+ mówi Vimowi, aby użył rejestru o nazwie
+
do następnego delete, yank lub put. Rejestr o nazwie+
jest rejestrem specjalnym, jest rejestrem schowka X11. (W innych systemach zamiast tego użyłbyś*
, I pomyśl, Zobacz:help clipboard
i:help x11-selection
) - y to polecenie yank, które mówi Vimowi, aby umieścił zaznaczenie w rejestrze nazwanym wcześniej.
Możesz to odwzorować tak:
:vmap <C-C> "+y
A następnie zaznacz coś myszką i naciśnij Control-C , aby to skopiować.
Ta funkcja działa tylko wtedy, gdy Vim został skompilowany z opcją +xterm_clipboard
. Uruchom vim --version
, aby dowiedzieć się, czy ma.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-05 10:07:13
Zamiast set mouse=a
użyj set mouse=r
w .vimrc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-30 21:33:46
Na OSX użyj fn zamiast shift .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-10 14:16:35
W Ubuntu możliwe jest użycie wiązań x-Term copy & paste wewnątrz Vima (Ctrl-Shift-C & Ctrl-Shift-V) na tekście, który został podświetlony za pomocą klawisza Shift.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-14 14:12:26
Inną opcją OSX-Mac jest odznaczenie View->Allow Mouse Reporting
(lub naciśnięcie ⌘ - R, aby go włączyć.) Pozwala to na przełączanie między interakcją z myszą i zaznaczaniem myszy, co może być przydatne podczas zaznaczania i kopiowania/wklejania kilku bitów, ponieważ nie musisz trzymać klawisza modyfikującego, aby to zrobić.
Uwaga Dla wielowierszowych o numerach liniowych:
Zwykle mam włączone numery linii, więc będzie to również kopiować numery linii, jeśli wybierzesz wiele linii. Jeśli chcesz skopiować wiele linii bez numerów linii wyłącz liczby za pomocą :set nonu
, a następnie możesz :set nu
włączyć je ponownie po zakończeniu kopiowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
Możesz użyć :set mouse&
w wierszu poleceń Vima, aby włączyć kopiowanie / wklejanie zaznaczonego tekstu za pomocą myszy. Następnie możesz po prostu użyć środkowego przycisku myszy lub shiftWstaw aby go wkleić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-04 23:29:40
Przypadkowo wyjaśniłem, jak wyłączyć set mouse=a
, kiedy ponownie przeczytałem pytanie i dowiedziałem się, że OP nie chce go wyłączyć w pierwszej kolejności. W każdym razie dla wszystkich poszukujących sposobu wyłączenia myszki (set mouse=
) zostawiam tutaj odniesienie do mojej odpowiedzi: https://unix.stackexchange.com/a/506723/194822
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-16 19:57:18
Ustawienia kompilacji, z którymi Vim został skompilowany, są częścią problemu. vim --version
pokazuje to.
W OSX domyślnym Vimem jest -clipboard
, ale potrzebujesz +clipboard
Na osx możesz i najwidoczniej ogólnie powinieneś używać macvima. Możesz zrobić brew cask install macvim
, który ma +clipboard
.
~$ ls -l /usr/bin/vim <--- default vim
-rwxr-xr-x 1 root wheel 1745984 15 Jul 2017 /usr/bin/vim
~$ ls -l /usr/local/bin/vim <-- macvim, installed recently via that mentioned brew line.
lrwxr-xr-x 1 apple admin 42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$
Uruchomiony vim uruchomi macvima, ponieważ /usr/local/bin
powinien być przed /usr/bin
w ścieżce, chociaż możesz sprawdzić za pomocą which vim
.
Uruchamianie Vima( aby uruchomić macvima), jest w porządku, ale możesz zmapować vi do macvima, bo w przeciwnym razie VI pozostanie na domyślnym Vimie! Możesz przepisać lub usunąć(z rm) i odtworzyć łącze VI sym, z ln. Aby to zrobić bez błędu "operation not permitted", 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 przez vim --version
Oto praca ~/.vim/vimrc
z tylko wymagane linie.
:set mouse=a
:map <leader>c "+y
:map <leader>v "+p
Domyślnym kluczem leader jest odwrotny ukośnik.
Przeczytałem sugestię, że należy użyć klucza leader.. (z pewnością control ma wiele klawiszy już w użyciu, więc sugerowano, aby nie używać control. Nie wiem, czy dotyczy to również klawisza command, ale w każdym razie).
Z tym wspomnianym mapowaniem, \c
zrobi "+y
, które skopiuje z rejestru znanego jako + do schowka. I \v
wklei się z rejestru znanego jako +.
Więc to jest kopiowanie / wklejanie, które działa między oknami.
Inny system operacyjny może wymagać "*
zamiast "+
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-17 05:37:11
Przytrzymanie shift podczas kopiowania i wklejania z zaznaczeniem zadziałało dla mnie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-30 20:45:12
Dodaj set clipboard=unnamed
do swojego .vimrc
. Tak więc użyje rejestru schowka ' * ' zamiast rejestru bez nazwy dla wszystkich operacji yank, delete, change I put (zauważ, że nie wpływa tylko na mysz).
Zachowanie rejestru ' * ' zależy od twojej platformy i sposobu kompilacji vim
(lub jeśli używasz neovim
).
Jeśli to nie działa, możesz spróbować z set clipboard=unnamedplus
, ale ta opcja ma sens tylko na systemach X11 (i w związku z tym gvim).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-10 08:02:56
Jeśli używasz sesji Putty, to automatycznie kopiuje zaznaczenie. Jeśli użyliśmy opcji "set mouse = a" w Vimie, wybranie za pomocą Shift+mouse drag automatycznie zaznacza tekst. Muszę sprawdzić W X-term.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-23 10:09:51
Em... Wciśnij Shift , a następnie kliknij prawym przyciskiem myszy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-05 14:04:16
W trybie ESC, po ustawieniu mysz = a, zaznacz tekst za pomocą myszki. Włącza to tryb wizualny w Vimie. Następnie możesz nacisnąć "y", aby przeciągnąć zaznaczony tekst i "p", aby wkleić go w dowolne miejsce. Dzieje się to tylko w vim.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-11 09:14:20