Отправить эхо или зарегистрировать содержимое в буфер обмена pbcopy / mac на Mac OS X

У меня есть пользовательская функция в vimscript, которая создает строку и затем выводит ее на нижнюю консоль. На данный момент я копирую и вставляю этот вывод, используя cmd-c, чтобы скопировать его в буфер обмена Mac OS X. Я хотел бы сократить этот рабочий процесс, просто отправив эхо в pbcopy, я попытался:

:echo "hello" <BAR> !pbcopy

Но, конечно, это не работает. Я также попытался записать вывод в регистр и затем вывести его:

:@a!pbcopy

Но он просто пытается выполнить строку, хранящуюся в @a, которая не является командой vim. Я чувствую, что это должно быть прямо вперед, спасибо.

2 ответа

Решение

Если предположить, pbcopy берет свой вклад от stdin Вы могли бы попробовать использовать system()

:call system('pbcopy', 'hello')
:call system('pbcopy', @a)

Для получения дополнительной информации см.

:h system()

Какую версию Vim вы используете? В любой разумно актуальной версии (установленной через Mac Ports/Homebrew или, что лучше, MacVim) просто

let @*="text"

поставит text в буфер обмена.

Увидеть :h clipboard,

Другие вопросы по тегам