Как мне скопировать вывод команды в vim?


33

Например, если я наберу ' :pwd', чтобы получить текущий рабочий каталог, я могу выделить текст в gvim, но не могу понять, как скопировать его в буфер обмена. Если я попробую то же самое в консоли VIM, я даже не могу выбрать его с помощью мыши. Я хотел бы, чтобы это работало со всеми командами vim, такими как set guifontкопирование guifont=Consolas:h10:cANSIвывода.

Ответы:


41

Вы ищете это,

:redir @* | set guifont | redir END

: redir команда перенаправляет вывод команды в регистр (@ *). Регистр @ * относится к буферу обмена.

Для получения дополнительной информации об этом,

:help :redir

не работает в vim-gtk какая-то подсказка?
Серхио Абреу

@SergioAbreu попробуйте @+вместо @*(ну, это работает в gvim).
leeand00

10

Попробуйте ' :r !pwd', чтобы получить текущий рабочий каталог непосредственно в открытый файл GVIM.
Затем вы можете скопировать его в буфер обмена так же, как и любое другое содержимое текстового файла, открытое там.


Это полезно, но могу ли я использовать это, set guifontнапример?
Стивен

Нет, это не команда оболочки, поэтому она не будет работать.
Кевин Панко

4

Для этого конкретного примера вы можете сделать (обратите внимание на «!», Который заставляет его проходить через оболочку):

:!pwd | xclip

или

:!pwd | xclip -selection secondary

(в зависимости от того, какой X-выбор вы хотите).

Возможно, вам придется сначала установить xclip

sudo apt-get install xclip

(или эквивалент)


3

Если вы запускаете vim в xterm, удерживая клавишу Shift при выделении текста, вы скопируете текст в X-эквивалент буфера обмена.


X имеет два буфера обмена (как минимум); Ваше предложение поместит текст в ПЕРВИЧНЫЙ выбор (вставка с помощью среднего щелчка), а не в выборку КЛИПАТА (вставка с помощью Ctrl + V в большинстве приложений).
Мариус Гедминас
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.