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.

Steven
źródło

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
asdfg
źródło
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ą.

nik
źródło
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)

nisc
źródło
3

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

garyjohn
źródło
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