Jak skopiować dane wyjściowe polecenia w vimie?


33

Na przykład, jeśli napiszę „ :pwd”, aby uzyskać bieżący katalog roboczy, mogę zaznaczyć tekst w gvim, ale nie mogę wymyślić, jak skopiować go do schowka. Jeśli spróbuję tego samego w konsoli vim, nie mogę nawet wybrać go za pomocą myszy. Chciałbym, aby to działało ze wszystkimi poleceniami vima, takimi jak set guifontkopiowanie danych guifont=Consolas:h10:cANSIwyjściowych.

Odpowiedzi:


41

Czy tego szukasz

:redir @* | set guifont | redir END

: polecenie redir przekierowuje wyjście polecenia do rejestru (@ *). Rejestr @ * odnosi się do schowka.

Aby uzyskać więcej informacji na ten temat,

:help :redir

nie działał w vim-gtk jakaś wskazówka?
Sergio Abreu,

@SergioAbreu spróbuj @+zamiast @*(cóż, działa w gvim).
leeand00

10

Spróbuj ' :r !pwd', aby pobrać bieżący katalog roboczy bezpośrednio do otwartego pliku GVIM.
Następnie możesz skopiować go do schowka, tak jak każdą inną zawartość pliku tekstowego tam otwartą.


Jest to przydatne, ale czy mogę tego użyć set guifontna przykład?
Steven

Nie, to nie jest polecenie powłoki, więc nie będzie działać.
Kevin Panko

4

W tym konkretnym przykładzie możesz to zrobić (zwróć uwagę na „!”, Który powoduje przejście przez powłokę):

:!pwd | xclip

lub

:!pwd | xclip -selection secondary

(w zależności od wyboru X).

Być może najpierw będziesz musiał zainstalować xclip

sudo apt-get install xclip

(lub odpowiednik)


3

Jeśli korzystasz z vima w xtermie, przytrzymanie klawisza Shift podczas zaznaczania tekstu spowoduje skopiowanie tekstu do ekwiwalentu X schowka.


X ma dwa schowki (przynajmniej); Twoja sugestia umieści tekst w WYBORZE PIERWOTNYM (wklej za pomocą środkowego kliknięcia) zamiast zaznaczenia SCHOWEK (wklej za pomocą Ctrl + V w większości aplikacji).
Marius Gedminas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.