Mogę przechwycić plik, skopiować i wkleić tekst za pomocą środkowego przycisku lub shift-insert.
Jak mogę skopiować tekst w vimie i wkleić go ze schowka systemowego?
:!sed -n 5,10p %
:!cat %
Mogę przechwycić plik, skopiować i wkleić tekst za pomocą środkowego przycisku lub shift-insert.
Jak mogę skopiować tekst w vimie i wkleić go ze schowka systemowego?
:!sed -n 5,10p %
:!cat %
Odpowiedzi:
Trzeba mieć z Vima clipboard
i xtermclipboard
funkcji skompilowany w. W Ubuntu, są dostępne tylko z pakietami vim GUI ( vim-gnome
, vim-gtk
, vim-athena
, itp).
Po zainstalowaniu jednego z nich możesz skopiować (i wkleić) rejestry schowka ( *
i +
). Z tego bardzo pouczającego postu na temat Vi i Vima :
W przypadku systemów opartych na X11 (tj. Linux i większość innych systemów podobnych do UNIX ) istnieją 2 schowki, które są od siebie niezależne:
- PODSTAWOWE - Jest to kopiowanie przy wyborze i można je wkleić środkowym przyciskiem myszy.
- SCHOWEK - Jest to kopiowane (zwykle)
^C
i wklejane^V
(To jest jak MS Windows).
Vim ma 2 specjalne rejestry odpowiadające tym schowkom:
*
używa PODSTAWOWY; mnemonic: s tar is s elect (dla copy-on- s elect)+
używa SCHOWKA; mnemonic: CTRL + C (dla wspólnego skrótu klawiszowego)
Aby skopiować do rejestru, poprzedzaj polecenie kopiowania ( y
) znakiem "
i nazwą rejestru ( *
na przykład). "*y
, a następnie kliknij środkowym przyciskiem myszy, aby wkleić lub "+y
i ShiftInsertwkleić.
Z tego pytania wynika dość interesujące rozwiązanie . Zainstaluj xclip, a następnie potokuj dane wyjściowe polecenia do xclip ( cat file | xclip -selection clipboard
na przykład), a następnie wklej je w dowolnym miejscu (jeśli jest w terminalu - użyj Ctrl ShiftV
). Okazuje się, że możesz faktycznie skrócić to polecenie xclip -sel clip
, co nie jest do końca oczywiste po przeczytaniu strony podręcznika man lub zawartych tam przykładów.
/dev
, ale tekst jest gdzieś przechowywany, prawda?
Miałem problem, ponieważ mój vim nie obsługiwał schowka :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Zainstalowałem vim-gnome (który obsługuje schowek), a następnie sprawdziłem ponownie:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Teraz jestem w stanie skopiować i wkleić, używając odpowiednio „+ y” i „+ p”.
sed -n5,10p
do drukowania linii 5-10, aby łatwiej kopiować i wklejać bez reakcji vima na mysz.