Próbuję skopiować i wkleić jakiś tekst z vima. Robię v , aby przejść do trybu wizualnego, a następnie y po wybraniu mojego bloku.

Wygląda na to, że kopiuje tekst do schowka vima, ponieważ p go wklei. Ale w innym programie (np. Chrome), kliknięcie prawym przyciskiem myszy -> wklejanie nie wkleja poprawnego tekstu. Jak skopiować tekst do odpowiedniego schowka?

Odpowiedź

Poniższe będą działać tylko wtedy, gdy vim --version oznacza, że masz funkcję +xterm_clipboard. Jeśli nie, będziesz musiał zainstalować dodatkowe pakiety lub przekompilować vima z dodaną tą funkcją.


W zasadzie są na to dwie opcje:

"+y 

kopiuje do „zwykłego” bufora schowka (więc możesz wkleić za pomocą Ctrl + V, kliknij prawym przyciskiem myszy i wybierz „Wklej” itp.), podczas gdy

"*y 

kopiuje do zaznaczenia X11 – możesz wkleić z tego bufora za pomocą środkowego kliknięcia.

Zwróć uwagę, że "* i "+ działa w obie strony. Więc jeśli zaznaczyłeś jakiś tekst w innej aplikacji, możesz wkleić go do vima za pomocą "*p, a jeśli skopiowałeś jakiś tekst (np. Używając Ctrl-C), możesz wkleić do vima używając "+p.

Komentarze

  • @Tshepang nie działa z kitem. co mam zrobić?
  • @RahulPatil Nie wiem; może zadać osobne pytanie, być może na superużytkowniku (ponieważ jest to ' narzędzie systemu Windows, byłoby lepiej tam).
  • @RahulPatil – jeśli używasz szpachli, to edytujesz plik na zdalnym serwerze, a nie na komputerze lokalnym. Ogólnie zdalny serwer nie ' nie wiedział o schowku na komputerze lokalnym. Jeśli używasz Linuksa, możesz ssh z przekierowaniem X (pod warunkiem, że zainstalowałeś biblioteki X na serwerze), ale ponieważ putty działa w systemie Windows, nie ' nie masz X działa, więc możesz ' t przekazać dalej.
  • Witam wszystkich, jak wpisać ” + y? powinienem wpisać to w trybie Visual czy w trybie poleceń? Głupota, ale nie jestem w stanie tego rozgryźć.
  • @AlindBillore: W trybie poleceń. Dosłownie naciśnij klawisze shift', a następnie shift=, a następnie y (nie wszystkie na raz, jeden po drugim, z wyjątkiem zmian oczywiście).

Odpowiedź

Jeśli używasz vim> = 7.3 .74, możesz umieścić to w swoim vimrc:

set clipboard=unnamedplus 

Który automatycznie użyje bufora + (schowek systemowy) domyślnie. Następnie, aby szarpać (kopiować), wystarczy użyć zwykłego polecenia y itp.

Jednak stwierdziłem, że to zachowanie jest dość denerwujące, ponieważ polecenia takie jak d umieść tekst, na którym działają, w domyślnym buforze, co oznaczało, że nie mogę zrobić szybkiego dd i wkleić wiersza z internetu , na przykład.

Komentarze

  • + to rejestrator schowka
  • Odnośnie ostatniego punktu, dd oznacza ” wyciąć jedną linię „, tak aby było to oczekiwane zachowanie. W rzadkich przypadkach, gdy chcesz aby faktycznie usunąć linię w zapomnienie, "_dd załatwi sprawę.
  • również jako @HamishDowner zauważa w swojej odpowiedzi: Poniższe zadziała tylko wtedy, gdy vim --version wskazuje, że masz funkcję +xterm_clipboard. Jeśli nie, będziesz musiał zainstalować dodatkowe pakiety lub ponownie skompilować vim z dodaną tą funkcją.

Odpowiedź

Przytrzymaj wciśnięty klawisz Shift i zaznacz tekst kursorem myszy.
Tekst zostanie skopiowany do schowka.

Działa to również przy wklejaniu ze schowka do vima.

Aby było jasne, działa to w przypadku vim uruchomionych w terminalu, takim jak xterm.

Komentarze

  • @LoopSpace w przypadku wyborów wielowierszowych spowoduje to również skopiowanie numerów wierszy, gdy włączony jest set nu . Więc prawdopodobnie chciałbyś przełączać numery linii za pomocą jakiegoś skrótu lub uruchamiać polecenie :set nonu przed każdym wyborem
  • Na MAC przytrzymaj klawisz opcji i wybierz tekst za pomocą kursor myszy
  • Nie ' nie działa u mnie przy używaniu vim 8.0 + gnome-terminal
  • Rozwiązanie niezgodne z terminami wielopanelowymi, takimi jak tmux.
  • To nie kopiuje do schowka, kopiuje do katalogu głównego .Zobacz rozróżnienie w artykule na temat Schowka Arch Wiki .

Odpowiedź

Uważam, że standardowe polecenia "+gP i "+y są bardzo trudne w użyciu. Dlatego „zmapowałem ponownie Ctrl-Y do szarpnięcia do schowka i Ctrl-P do wklejenia ze schowka. Dodaj to do .vimrc

nnoremap <C-y> "+y vnoremap <C-y> "+y nnoremap <C-p> "+gP vnoremap <C-p> "+gP 

Odpowiedź

Kiedy sprawdziłem vim nie obsługuje schowka:

vim --version | grep clip -clipboard +insert_expand +path_extra +user_commands +emacs_tags -mouseshape +startuptime -xterm_clipboard 

Zainstalowałem vim-gnome i sprawdziłem ponownie

vim --version | grep clipboard +clipboard +insert_expand +path_extra +user_commands +emacs_tags +mouseshape +startuptime +xterm_clipboard 

Teraz mogę kopiować i wklejać odpowiednio za pomocą „+ y i” + p.

Odpowiedź

Nieważne, Znalazłem odpowiedź – jest napisana w menu vima.

"+y 

Bardzo intuicyjna.

Komentarze

  • Czy używasz gvim?
  • @ nozimica- yeah
  • To ' są również dostępne w vimie działającym w xterm lub podobnym emulatorze terminala pod X (jeśli vim jest skompilowany z funkcją +xterm_clipboard).

Odpowiedź

Aby dodać odpowiedź nie specyficzną dla vima: możesz użyć Ctrl+Shift+C, aby skopiować do schowka systemowego w Ubuntu (jeśli funkcja jest zapewniana przez twój emulator terminala, zapewnia go gnome-terminal). Ctrl+Shift+V wkleja do innego okna terminala, zwykłe Ctrl+V wkleja do aplikacji z interfejsem graficznym.

Dodatkowo, jeśli wybierzesz tekst w terminalu, a następnie kliknij środkowym przyciskiem myszy, zostanie wklejony ze schowka X11.

Komentarze

  • Z jakiegoś powodu nie ' t działa. Po prostu wybierz w trybie wizualnym, skopiuj za pomocą ctrl-shift-C, a następnie wklej w innej aplikacji za pomocą Ctrl-shift-V? Tekst nie ' nie jest kopiowany za mnie.
  • @ ripper234: to nie działa, jeśli używasz gvim. Jak powiedział crazy2be, ta funkcjonalność pochodzi z twojego emulatora terminala.
  • @ ripper234: 1) Jest to funkcjonalność dostarczana przez emulator terminala (gnome-terminal dla jednego zapewnia ją), 2) Ctrl + Shift + V jest aby wkleić do terminala , aplikacje GUI nadal używają Ctrl + V jak zwykle. I ' edytuję odpowiedź, aby była bardziej przejrzysta.
  • jeśli używasz manetki z przesunięciem – zaznacz tekst, kopiowanie wklejanie z jednego okna buforów staje się łatwe.

Odpowiedz

Przytrzymaj klawisz SHIFT i zaznacz myszą tekst, aby go skopiować.

Następnie wklej w innym programie za pomocą CTRL + v.

Działa w terminalu na moim Ubuntu 16.04. Nie mam pewności co do gvim i innych systemów.

tutaj wprowadź opis obrazu

Komentarze

  • To nie działa.
  • kreatywna odpowiedź

Odpowiedź

Domyślnie, jeśli zainstalujesz lekką wersję vima, nie będziesz mieć +xterm_clipboard włączona (vim --version | grep xterm), która jest potrzebna do korzystania z * i + rejestruje się poza vimem.

Aby go włączyć, musisz samodzielnie skompilować vima lub zainstalować wersję vima, która jest z nim wstępnie włączona. Użyłem vim-gnome: sudo apt-get install vim-gnome. Jeśli wykonasz vim --version | grep xterm, zobaczysz, że jest to teraz +xterm_clipboard.

Teraz spróbuj skopiować do + i * i powinno działać.

Odpowiedź

Po prostu dodaj, jeśli coś działa, spróbuj przełączyć terminal opakowujący vima (jeśli używasz vima z terminala). Odkryłem, że na przykład schowek jest niedostępny przez guake, podczas gdy jest dostępny z gnome-terminal.

Odpowiedź

Dla Ubuntu 14.04 I powyżej:

  • Po prostu zaznacz tekst, który chcesz skopiować. Następnie kliknij myszą środkowy przycisk przewijania i przejdź do schowka

  • I tam też zrób to samo (kliknij środkowy przycisk przewijania myszą).

Działa to w 100% w obu vim i tail w systemie Ubuntu.

Dodaj komentarz

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