2014-01-24 5 views
4

В моем приложении командной строки Go language мне нужна возможность скопировать определенные фрагменты текста в системный буфер обмена с помощью Go. В основном что-то вроде PyperClip, но для Go.Как скопировать текст в/из буфера обмена в Go?

Я ищу платформенное агностическое решение! Любая помощь будет отличной :)

+1

Я боюсь, что нет никакого агностического решения платформы, обернутого так же аккуратно, как в стандартной библиотеке Java. Вы можете использовать несколько инструментов для платформы, таких как 'xsel' под X,' pbcopy'/'pbaste' под OSX и' pclip.exe' под Windows. – 9000

+0

Нет такой вещи, как платформенный агностический буфер обмена. Вы могли бы написать что-то, что будет работать на большинстве основных платформ. – Cubic

ответ

4

Один проект (только для Windows и Mac) кажется приближающимся к тому, что вы хотите: atotto/clipboard.

Предоставить копирование и вставку в буфер обмена для Go.

func ReadAll() (string, error) 
func WriteAll(text string) error 

поддержка Linux в этом классе clipboard_linux.go: простая обертка для xsel --output/input --clipboard системной команды.


Другой подход: попытаться воспользоваться сторонними библиотеками, как GLFW:

бесплатно, с открытым исходным кодом, мульти-платформенной библиотеки для открытия окна, создавая контекст OpenGL и управление вход

Его оболочка Go glfw3 действительно содержит файл clipboard.go с предположительно многоплатформенными методами.

func (w *Window) SetClipboardString(str string) 
func (w *Window) GetClipboardString() (string, error) 

Но это было бы в контексте окон GLFW, а не в любом окне оболочки, конечно.

Смежные вопросы