Jak zrobić wklej vim ze schowka systemu (i skopiuj do)?

769

W przeciwieństwie do innych edytorów, vim przechowuje skopiowany tekst we własnym schowku. Dlatego bardzo trudno jest mi skopiować tekst ze strony internetowej i wkleić go do bieżącego działającego pliku. Zdarza się, że muszę albo otworzyć gedit, albo wpisać go ręcznie.

Czy mogę zrobić wklej vim ze schowka systemu?

Santosh Kumar
źródło
7
Możliwy duplikat Jak skopiować do schowka za pomocą vima?
BuZZ-dEE,
7
Skopiuj „+ y Wklej” + p Działa podobnie jak szarpnięcie i wklej, z wyjątkiem tego, że wcześniej określisz rejestr.
Banjocat
2
Aby użyć poniższych poleceń, upewnij się, że zrobiłeś to, sudo apt-get install vim-gnome co doda tę funkcjonalność do wbudowanego vima korzystania ze schowka systemu.
Harnirvair Singh 16.04.16
2
@Harnirvair Dla wielu zestawów czytników tutaj vim-gnomejest to prawdopodobnie przesada lub po prostu niedostępna w ich systemie operacyjnym / dystrybucji, podczas gdy podejrzewam vim-gtki najlepiej vim-gtk3istnieje i wyciąga mniej zależności, jednocześnie zapewniając integrację ze schowkiem (przynajmniej dla tych wciąż na X11; Nie jestem pewien, jak to wszystko współdziała z Waylandem).
underscore_d
3
Domyślnie w Fedorze - nie ma dostępu do schowka (potrzebujesz gvima), superuser.com/questions/194747/…
icc97

Odpowiedzi:

880

"*I "+rejestry są do schowka systemowego ( :help registers). W zależności od systemu mogą robić różne rzeczy. Na przykład w systemach, które nie używają X11, takich jak OSX lub Windows, "*rejestr służy do odczytu i zapisu w schowku systemowym. W systemach X11 można używać obu rejestrów. Zobacz :help x11-selectionwięcej szczegółów, ale w zasadzie "*jest to analogiczne do podstawowego wyboru X11 (który zwykle kopiuje rzeczy wybrane za pomocą myszy i wkleja za pomocą środkowego przycisku myszy) i "+jest analogiczne do wyboru SCHOWKA X11 (który jest właściwym schowkiem).

Jeśli wszystko to przeszło ci przez głowę, spróbuj użyć "*yylub "+yyskopiować linię do schowka systemu. Zakładając, że masz odpowiednie opcje kompilacji, jedna lub druga powinna działać. Możesz to zmienić na coś wygodniejszego dla siebie. Na przykład, możesz umieścić vnoremap <C-c> "*yswój ~ / .vimrc, abyś mógł wizualnie wybrać i nacisnąć Ctrl+, caby szarpnąć do schowka systemu.

Pamiętaj, że kopiowanie / wklejanie ze schowka systemowego nie będzie działać, jeśli :echo has('clipboard')zwróci 0. W tym przypadku vim nie jest kompilowany z tą +clipboardfunkcją i będziesz musiał zainstalować inną wersję lub ją ponownie skompilować. Niektóre dystrybucje linuksa domyślnie zapewniają minimalną instalację vima, ale generalnie, jeśli zainstalujesz pakiet vim-gtklubvim-gtk3 , możesz uzyskać dodatkowe funkcje.

Możesz także zajrzeć do 'clipboard'opcji opisanej na :help cb. W takim przypadku możesz :set clipboard=unnamedlub :set clipboard=unnamedplusaby wszystkie operacje szarpania / usuwania były automatycznie kopiowane do schowka systemowego. Może to być niedogodnością w niektórych przypadkach, gdy przechowujesz coś innego w schowku, ponieważ to nadpisuje.

Aby wkleić, możesz użyć "+plub "*p(ponownie, w zależności od systemu i / lub żądanego wyboru) lub możesz zmapować je na coś innego. Piszę je wyraźnie, ale często znajduję się w trybie wstawiania. Jeśli jesteś w trybie wstawiania, nadal możesz wkleić je z odpowiednim wcięciem za pomocą <C-r><C-p>*lub <C-r><C-p>+. Zobaczyć :help i_CTRL-R_CTRL-P.

Warto również wspomnieć o pasteopcji vima ( :help paste). To wprowadza vima w specjalny „tryb wklejania”, który wyłącza kilka innych opcji, umożliwiając łatwe wklejanie do vima przy użyciu emulatora terminali lub znanego skrótu wklejania multipleksera. Po prostu wpisz, :set pasteaby ją włączyć, wklej zawartość, a następnie wpisz, :set nopasteaby ją wyłączyć. Alternatywnie możesz użyć tej pastetoggleopcji, aby ustawić kod klucza, który przełącza tryb ( :help pastetoggle). Polecam używanie rejestrów zamiast tych opcji, ale jeśli nadal są one zbyt przerażające, może to być wygodne obejście podczas doskonalenia kotłów vim.

Zobacz :help clipboardwięcej szczegółowych informacji.

Conner
źródło
103
Jest to bardzo pouczające, ale czy możesz podsumować, jakie naciśnięcia klawiszy należy wykonać, aby wkleić ze schowka systemowego ... na przykład, co się robi "*p? Czy naciskam Shift- ', a następnie Shift-8, a następnie p itd.?
T. Brian Jones
10
Tak, wpisz te trzy znaki po kolei. Wiele poleceń w vimie wykorzystuje tak zwany „tryb oczekiwania operatora”, w którym naciśnięty jest jeden klawisz, a następnie vim czeka na więcej klawiszy. Weźmy ddna przykład. Pierwszy dwchodzi w tryb oczekiwania operatora, następnie drugi dkończy polecenie i usuwa linię. Jeśli jednak wpiszesz dG, Gspowoduje to usunięcie go na końcu pliku zamiast zwykłego usuwania wiersza. Rejestry używają tej samej zasady, aby umożliwić korzystanie z nich przez różne polecenia.
Conner,
4
Niestety! Gdybym widział ten post tylko dzisiaj! To wszystko, co chciałem wiedzieć o kopiowaniu i wklejaniu ze schowka systemowego. „<Cr> <Cp> * lub <Cr> <Cp> +” to czyste złoto.
Keith Pinson
54
Nacisk: musisz zainstalować vim-gtkpakiet (przynajmniej pod Debianem), aby uzyskać kompilowany vim +xterm_clipboard. Zajęło mi to 40 minut, aby się tego dowiedzieć, i tylko kilka sekund sudo apt-get install vim-gtk.
Dominykas Mostauskis
3
@DominykasMostauskis vim-gnomerównież działa i ma +xterm_clipboardwłączony.
Chev
155

Możesz skopiować do vima za pomocą skrótu gnome-terminal do wklejania. Ustaw plik w trybie wstawiania i użyj

Ctrl+ Shift+ v.

Pamiętaj wcześniej

 :set paste 

aby uniknąć bałaganu z wcięciem.

Neel
źródło
19
ten bałagan z wcięciem, jeśli istnieje wiele linii, takich jak Python dla pętli
Moj
11
Użyj przełącznika wklejania dla trybu wstawiania. Np. Ustaw pastetoggle = <F2> Następnie w trybie wstawiania naciśnij <F2>, a następnie wstaw kod python.
Jan Weitz
Tak, skopiuj za pomocą Ctrl + Shift + c i wklej do
innego
1
jeśli tabulatory / białe znaki, eole itp. są pokazane jako widoczny znak (za pomocą opcji listchars), wówczas te znaki zastępcze zostaną skopiowane zamiast ukrytych.
user907860 18.01.2016
2
To powinna być wybrana odpowiedź, biorąc pod uwagę jej zwięzłą odpowiedź
Aidin
41

Linux

W moim systemie Linux rejestry +i *rejestrują mapę na wybór X11, który można wkleić środkowym przyciskiem myszy. Kiedy :set clipboard=unnamedi :set clipboard=unnamedplussą używane, rejestry są mapowane do schowka i można je wkleić za pomocą CTRL-V.

Wygląda na to, że specyfika jest nieco zależna od konfiguracji i systemu, więc przebieg na pewno będzie się różnić. Jednak zdecydowanie powinno to doprowadzić cię do właściwego kierunku.

Zobacz też

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

Todd A. Jacobs
źródło
1
Mapuje tylko *do rejestru głównego X11 (który jest zwykle wklejany za pomocą myszy). +mapuje do rejestru schowka X11 zwykle wklejonego skrótami.
ZyX
@ZyX Nie w moim systemie, ale Twój przebieg może się różnić. Najlepiej jest jawnie skonfigurować pożądane zachowanie, jeśli chcesz uzyskać spójne wrażenia na różnych platformach i wersjach oprogramowania.
Todd A. Jacobs,
Wierzę, że oznacza to, że masz menedżera schowka, takiego jak klipper / glipper, są w stanie zsynchronizować dwa bufory. To nie zmienia faktu, że vim zastosowania *dla pierwotnego i +do schowka rejestrach X11, widać to w vim źródło: te wartości są ustawione tam i nigdy zmodyfikowany, a clip_stari clip_plussą zawsze używane do *i +rejestry odpowiednio.
ZyX
41

Dla mnie ta konfiguracja działa w przypadku kopiowania i wklejania

" copy and paste
vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <ESC>"+pa
lis2
źródło
w co wkleiłeś?
StarWind0,
To IMHO jest lepszym rozwiązaniem niż ustawienie clibboard na nienazwany - aby nie zadzierać ze schowkiem systemu operacyjnego przy każdej akcji x / dd / y itp. A na Macu lepszym pomysłem może być zmiana modyfikatora C (ctrl) na D w celu mapowania kombinacji cmd + c / x / v.
mindex
34

Byłyby to linie potrzebne w twoim vimrc do tego celu:

set clipboard+=unnamed  " use the clipboards of vim and win
set paste               " Paste from a windows or from vim
set go+=a               " Visual selection automatically copied to the clipboard
Danniel Little
źródło
2
Podoba mi się twoje rozwiązanie. Chciałbym lepszego wyjaśnienia.
zhon
świetny. korzystanie z rejestrów zawsze sprawia, że ​​waham się i muszę myśleć. Jest o wiele lepiej
JonnyRaa
Moja wersja vima ma + schowek i ta opcja nie działa dla mnie. Używam Byobu (który używa Tmux pod maską).
GGhe
Musiałem dodać zestaw schowka + = unnamedplus dla Fedory
hakunin
29

Uważam, że to pytanie zasługuje na bardziej obiektywną i graficzną odpowiedź:

Wejście w tryb wklejania

  • ESC
  • : ustaw wklej
  • naciśnij i
  • SHIFT+ Insert(z tekstem skopiowanym do schowka)


Opuszczanie trybu wklejania

  • ESC
  • : ustaw nopaste
  • naciśnij i

Wkleiłeś tekst i możesz pisać ponownie.

ivanleoncz
źródło
1
Mam to do pracy, ale :set nopastenic nie robi. Co to ma zrobić? Po co mi to?
Marko Avlijaš
1
Właściwie to robi. Podczas występu :set nopastemówisz edytorowi, że nie chcesz już wklejać. A ikiedy trafisz , wrócisz do trybu edycji :).
ivanleoncz
2
Szczerze mówiąc, Marko, nie wiem.
ivanleoncz
1
Dzięki SHIFT + Insert zrobiłem to dla mnie, dzięki!
Melissa Loos,
1
To działało dla mnie jak urok. Za każdym razem, gdy wracam do vima, zawsze muszę wyglądać mniej więcej tak.
benjaminadk
17

schowek

Istnieje specjalny rejestr do przechowywania tego wyboru, jest to rejestr „*. Nic tu nie jest wprowadzane, chyba że informacja o tym, jaki tekst jest zaznaczony, ma się zmienić (np. Gdzieś lewym przyciskiem myszy) lub gdy inna aplikacja chce wklej zaznaczony tekst. Następnie tekst zostanie umieszczony w rejestrze „*. Na przykład, aby wyciąć linię i ustawić ją jako bieżący wybór / umieścić na SCHOWKU:

    "*dd

Podobnie, gdy chcesz wkleić zaznaczenie z innej aplikacji, np. Poprzez kliknięcie środkowym przyciskiem myszy, zaznaczenie jest najpierw umieszczane w rejestrze „*, a następnie„ wstaw ”jak każdy inny rejestr. Na przykład, aby wstawić zaznaczenie (zawartość SCHOWKA):

    "*p

rejestry E354

> There are nine types of registers:                      
> 1. The unnamed register ""
> 2. 10 numbered registers "0 to "9
> 3. The small delete register "-
> 4. 26 named registers "a to "z or "A to "Z
> 5. four read-only registers ":, "., "% and "#
> 6. the expression register "=
> 7. The selection and drop registers "*, "+ and "~ 
> 8. The black hole register "_
> 9. Last search pattern register "/

Wklej ze schowka

1. Clipboard: Copy
2. Vim insertmode, middle mouse key

Sprawdź obsługę schowka X11 w terminalu

Jeśli chcesz uruchomić Vima w terminalu, musisz poszukać wersji Vima, która została skompilowana z obsługą schowka. Sprawdź obsługę schowka X11, w konsoli wpisz:

% vim --version

Jeśli zobaczysz „+ xterm_clipboard”, możesz zacząć.

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

Serwer X utrzymuje trzy opcje, zwane:

PODSTAWOWY, WTÓRNY i SCHOWEK

Wybór PODSTAWOWY jest konwencjonalnie używany do implementacji kopiowania i wklejania za pomocą środkowego przycisku myszy. Wybory WTÓRNE i SCHOWEK są rzadziej używane przez aplikacje.

http://linux.die.net/man/1/xsel

The Demz
źródło
12

Wypróbowałem powyższe sugestie i żadna z nich nie działała w moim środowisku. (Klon Windows PuTTY przez ssh)

Pojawiło się dodatkowe googling: /unix/110684/copy-paste-into-sshd-vim-from-local-windows-clipboard

Jeden z komentarzy sugerował użycie, SHIFT+INSERTktóre pomogło wkleić ze schowka mojego pulpitu do bufora Vima. Ctrl-Cjuż pracował nad skopiowaniem do schowka na pulpicie z Vima.

Społeczność
źródło
2
Pracuję nad vimem wewnątrz narzędzia cmder [Windows 8.1]. kiedy wchodzisz w ustawienia cmdera> klucze i makra> wklej, tam mam polecenie shift + insert dla wklejania wielowierszowego i ctrl + v dla wklejania jednowierszowego.
Zubair Alam,
1
dla mnie proste kliknięcie prawym przyciskiem działa jak urok !! Wystarczy kliknąć prawym przyciskiem myszy!
Fr0zenFyr
2
Ponieważ używasz terminala, a ssh vim nie może dotrzeć do schowka twojego systemu macierzystego poprzez SSL. SHIFT+INSERTdziała, ponieważ jest to opcja wklejania dla twojego terminala (lub w twoim przypadku PuTTY); jednak wcięcie prawdopodobnie będzie błędne. Sprawdź ostatni akapit mojej odpowiedzi na temat pasteopcji rozwiązania tego.
Conner,
1
@jinksPadlock. dzięki .. tak .. mogę skopiować / wkleić za pomocą myszy .. próbowałem dowiedzieć się, jak to zrobić, używając „samej klawiatury”. Kopiowanie z systemu Windows do VIM jest możliwe tylko przy użyciu klawiatury za pomocą Putty, ale nie w odwrotnym kierunku. W bash dla Windows .. nie można tego zrobić w żadnym kierunku ATM. Zebraliśmy listę zasobów, aby wskazać ludziom we właściwych kierunkach, a także dla nas .. jeśli masz coś do dodania .. możesz dodać je tutaj: stackoverflow.com/questions/45271895/…
alpha_989
1
@ alpha_989 później lepiej niż nigdy;) Nie mogę dodawać do jinksPadlock, ponieważ obecnie nie mam systemu operacyjnego Windows pod palcami. SHIFT+INSdziała z hosta Linux na ssh vim, podobnie jak trzecie kliknięcie myszą.
tuk0z
10

Nie miałem + schowka, więc wymyśliłem to alternatywne rozwiązanie za pomocą xsel:

Dodaj do swojego ~ / .vimrc:

vnoremap <C-C> :w !xsel -b<CR><CR>

rotesteina
źródło
1
Dzięki za świetny pomysł! Skończyło się na użyciu:vnoremap <C-C> :w !xclip -i -sel c<CR><CR>
andy
6

Szybka uwaga dla osób, których instalacja vima nie obsługuje rejestrów * i +. Nie trzeba pobierać nowej instalacji vima, aby wkleić ją ze schowka. Oto alternatywna metoda:

1) Zainstaluj parcellite (menedżer schowka o małej powierzchni pamięci);

2) W pliku .vimrc dodaj:

command Clip r !parcellite -c

3) Uruchom ponownie vim.

Teraz, gdy wpiszesz: Clip jako polecenie ex, zawartość schowka zostanie wklejona pod kursorem. Możesz także zamapować nowe polecenie na klawisz funkcyjny, aby móc to zrobić za jednym naciśnięciem klawisza.

Lovecraftian
źródło
4

To działa dla mnie: Ctrl+ Shift+V

Boseam
źródło
3
Odpowiedź @ neel już to stwierdziła. Powinien to być tylko komentarz lub, lepiej, głosowanie wzwyż, jeśli chcesz powiedzieć, że to również zadziałało.
ericbn
3

Najprostszym rozwiązaniem tego problemu, które działa również między różnymi maszynami Linux, sshjest:

  1. Sprawdź, czy wsporniki vim X-11 Schowek: vim --version | grep clipboard. Jeżeli zgłasza powrotem -clipboardi -xterm_clipboardnależy zainstalować albo vim-gtkalbo vim-gnome(gvima na Arch Linux)

  2. Dodaj następujące wiersze do .vimrc:

set clipboard=unnamedplus
set paste
  1. Jeśli logujesz się na innym komputerze przez ssh, użyj opcji -Y: ssh -Y machine

Teraz kopiowanie i wklejanie powinno działać dokładnie tak, jak oczekiwano na jednym komputerze i na różnych komputerach, używając tylko ydla yank i ppasty. NB zmodyfikuj .vimrcna wszystkich komputerach, na których chcesz korzystać z tej funkcji.

chao
źródło
Myślę, że X serwer powinien być również dostępny na serwerze, aby to działało. Tak! może być zainstalowany przez vim-gtk. Myślę, że xvfb będzie alternatywną opcją dla X serwera.
Ajeeb.KP
3

Wpadłem na ten problem na połowie 2017 MacBook Pro pracującym vimwewnątrz iTerm2jak mój środowiska rozwoju podstawowej.

Jak sugerują inne odpowiedzi, pobiegłem vim --version i zauważyłem, że powraca-clipboard , co oznacza, że ​​wersjavim tego dostarczona z moim komputerem nie została skompilowana z opcją schowka.

homebrewPakiet vimwydaje się skompilowaćclipboard opcją, więc poprawka dla mnie było:

  1. Biegać brew install vim
  2. Dodaj set clipboard+=unnameddo mojego~/.vimrc pliku
  3. Zamknij i otwórz ponownie iTerm2
NM Pennypacker
źródło
3

Skopiuj do schowka systemu operacyjnego

Wybierz tekst w trybie wizualnym, naciśnij "*y

Wklej ze schowka systemu operacyjnego

naciśnij "*p

Muhammed Ozdogan
źródło
2

W nawiązaniu do odpowiedzi Conner, który był wielki, ale C-R C-p + i C-R C-p *w trybie wstawiania jest nieco niewygodne. To samo "*pi"+p z trybu poleceń.

guru VIM zasugerował co następuje, aby zmapować C-vto, co C-r C-p +robi.

Możesz mieć :inoremap <C-v> <C-o>"+ptylko tryb wstawiania

jeśli naprawdę chcesz zastąpić blokowy tryb wizualny (nie jest to zalecane przez niego, ponieważ tryb wizualny jest dobry), możesz to zrobić map <C-v> "+p

barlop
źródło
2

Jeśli używasz vima w MAC OSX, niestety jest on dostarczany ze starszą wersją i nie jest zgodny z opcjami schowka. Na szczęście homebrew może łatwo rozwiązać ten problem.

zainstaluj vim:

brew install vim --with-lua --with-override-system-vim

zainstaluj wersję vim:

brew install macvim --with-lua --with-override-system-vim

uruchom ponownie terminal, aby zastosować.


dodaj następujący wiersz do ~/.vimrc
set clipboard=unnamed

teraz możesz skopiować linię w vimie yyi wkleić ją w całym systemie.

anonimowy
źródło
2

Jeśli najpierw używasz myszy, zrób to

 :set paste 

Następnie right click mousezawartość w buforze zostanie wklejona

Mohammed Rafeeq
źródło
1

Oprócz tego :set clipboard=unnamedpowinieneś użyć mvim -vtego, co możesz uzyskać, brew install macvimjeśli używasz vima w Terminal.app na Mac OS X 10.9. Domyślny vim nie obsługuje opcji schowka.

Nobu
źródło
1

Warto również wspomnieć, że w systemie OSX za pomocą Vima możesz zaznaczyć tekst za pomocą myszy, Cmd-C, aby skopiować do schowka systemowego OSX, a skopiowany tekst będzie dostępny w schowku poza Vimem.

Innymi słowy, OSX traktuje to tak, jakby to było zwykłe okno, i tu właśnie przydaje się mocno złośliwy przycisk Apple „Command”.

B-30

B-30
źródło
1
Dotyczy to również każdego na wpół przyzwoitego emulatora terminala w dowolnym innym systemie operacyjnym. Apple nie ma tu żadnej przewagi.
underscore_d
1

W oparciu o odpowiedź @ lis2 używam prostszej konfiguracji, która nie wymusi trybu wstawiania na końcu:

" Copy and paste
if has('clipboard') && !has('gui_running')
  vnoremap <C-c> "+y
  vnoremap <C-x> "+d
  vnoremap <C-v> "+p
  inoremap <C-v> <C-r><C-o>+
endif

Pamiętaj, że wszystkie te zastępują domyślne mapowania Vima:

  • v_CTRL-C: zatrzymanie trybu wizualnego
  • v_CTRL-X: odejmij [liczba] od liczby
  • v_CTRL-V: blokowy tryb wizualny
  • i_CTRL-V: wstaw następny niecyfrowy dosłownie, do którego również jest mapowany i_CTRL-Q

Jako alternatywę, można użyć przycisków inspirowane w „yank”, „Delete” i „put” vim czasowników <C-y>, <C-d>i <C-p>odpowiednio. Zastąpiłyby one tylko jedno domyślne mapowanie:

  • i_CTRL-P: słowo kluczowe wyszukiwania do tyłu dla zakończenia
ericbn
źródło
1

Inne rozwiązania są dobre, jeśli chcesz zmienić vimrc itp. Jednak chciałem prosty sposób kopiowania z vima na klawiaturę systemową. Właśnie to wymyśliłem.

  • Wybierz tekst, który chcesz skopiować w trybie wizualnym v
  • Naciśnij :(zostanie automatycznie rozwinięty, aby pokazać:'<,'> )
  • Wpisz y * lub y + (w zależności od systemu), aby przeciągnąć zaznaczony tekst do schowka systemowego
NateW
źródło
1

To, czego naprawdę potrzebujesz, to EasyClip . Zrobi to i wiele więcej ...

Scott Wade
źródło
1

Ponieważ vim 8 prawym przyciskiem myszy domyślnie włącza tryb wizualny. Zapobiega to „normalnemu” kopiowaniu i wklejaniu (nazwij to „defektem według projektu” https://github.com/vim/vim/issues/1326 ). Napraw to, wykonując:

echo "set mouse-=a" >> ~/.vimrc .

Zamknij i uruchom ponownie vima.

dr0i
źródło
1

Z Vimem 8+ na Linuksie lub Macu, możesz teraz po prostu użyć natywnej pasty systemu operacyjnego ( ctrl+shift+Vna Linuxie, cmd+Vna Macu). Nie naciskaj, iaby przejść do trybu wstawiania.

Wklei zawartość schowka systemu operacyjnego, zachowując spacje i tabulatory bez dodawania automatycznego wcięcia. Jest to odpowiednik starego :set paste, i, ctrl+shift+V, esc, :set nopastemetody.

Nie potrzebujesz nawet zainstalowanych funkcji +clipboardlub +xterm_clipboardvim. Ta funkcja nosi nazwę „wklejania w nawiasach”. Aby uzyskać więcej informacji, zobacz Wyłączanie automatycznego wcięcia podczas wklejania tekstu do vima

wisbucky
źródło
0

Kiedy używam mojego Debiana vim, który nie jest zintegrowany z Gnome (vim --version | grep clip # pokazuje brak obsługi schowka), mogę skopiować do schowka po przytrzymaniu klawisza Shift i zaznaczeniu tekstu myszką, tak jak w przypadku każdego innego inny program przekleństw. Jak zauważyłem na podstawie komentarza @Conner, to terminal (w moim przypadku gnome-terminal) wyłącza raportowanie zdarzeń myszy, gdy wyczuje moje naciśnięcie klawisza Shift. Sądzę, że programy oparte na klątwach mogą odbierać zdarzenia myszy po wysłaniu określonej sekwencji Escape do terminala.

węgorz ghEEz
źródło
1
To używa twojego terminala, a nie vima.
Conner,
0

Jeśli korzystasz z systemu Windows i chcesz wkleić zawartość schowka systemowego, użyj ptego polecenia.

:set clipboard = unnamed

To rozwiązało mój problem.

Vincent Mathew
źródło
0

Istnieją dwa proste sposoby, aby to zrobić. Ustaw plik w trybie wstawiania i 1) naciśnij środkowy przycisk (kółko przewijania) w myszy lub 2) Ctrl + Shift + V

użytkownik1898814
źródło
0

W przypadku niektórych klawiatur międzynarodowych konieczne może być naciśnięcie "+, Spaceaby uzyskać ".

W takim przypadku należy nacisnąć "Space+ylub "Space*yskopiować.

I "Space+plub " Space*pwkleić.

Arthur F.
źródło
0

Użyłem odpowiedzi NM Pennypacker i zainstalowałem vima przez homebrew na początku 2011 MacBook Pro:

brew install vim

Teraz mogę również użyć rejestru „* do kopiowania i wklejania tekstu w vimie. Nie musiałem nawet zmieniać czegoś w moim pliku ~ / .vimrc ani w $ PATH. Homebrew dodał dowiązania symboliczne w / usr / local / bin, np. vim -> ../Cellar/vim/8.1.2350/bin/vim.

Alternatywą, która działała wcześniej, jest skopiowanie niektórych wierszy tekstu w vimie poprzez zaznaczenie go myszką i użycie kopiowania i wklejania (cmd + c, cmd + v) na komputerze Mac. Ta opcja działa tylko wtedy, gdy tekst, który chcesz skopiować i wkleić, jest mniejszy niż rozmiar okna vima. Jeśli chcesz skopiować cały tekst w vimie, zaznaczając całe okno lub używając cmd + a, spowoduje to skopiowanie innych części konsoli napisanych przed uruchomieniem vima, co jest bardzo denerwujące.

Cieszę się, że znalazłem nową metodę przy użyciu rejestru schowka.

feli_x
źródło