Я регулярно должен вставлять определенный бит текста или файла (вероятно, изображение), но это становится довольно длинным и раздражающим, чтобы продолжать возвращаться и помещать его в мой буфер обмена, поскольку я должен скопировать и вставить другие вещи также.
Таким образом, то, что было бы очень полезно для меня, должно будет иметь определенное сочетание клавиш, которое просто вставляет определенную часть текста или файла, но является отдельным от основного буфера обмена. Сочетание клавиш должно или поместить объект в мой основной буфер обмена при нажатии или это должно просто вставить его сам, какой бы ни легче сделать (если бы оба так же столь же легкие как друг друга затем, оба были бы хороши как, существуют случаи, когда мне будет нужно один, и случаи, когда мне будет нужен другой).
Существует ли способ сделать что-то вроде этого? Я выполняю Ubuntu GNOME 16.04 с GNOME 3.20.
Команда для получения фиксированной строки в буфер обмена очень легка, это просто
xsel -ib <<< 'Your string goes here'
или если Вы хотите считать строку из файла
xsel -ib < your-file.txt
или от команды производится
your-command | xsel -ib
Непосредственно запись фиксированной строки путем эмуляции нажатий клавиш не намного более сложна хотя
xvkbd -file - <<< 'Your string goes here'
или если Вы хотите считать строку из файла
xvkbd -file your-file.txt
или от команды производится
your-command | xvkbd -file -
Можно просто создать пользовательский ярлык в Параметрах настройки системы → Клавиатура → конфигурация Ярлыков и присвоить команду сочетанию клавиш, которого Вы желаете.
Но заботьтесь, что интерпретатор ярлыка не является Bash или подобной оболочкой, таким образом, наш <<<
("здесь представляют в виде строки" синтаксис), или |
каналы не будут работать. Для решения этого так или иначе мы просто включаем нашу команду оболочки с bash -c "INSERT COMMAND HERE"
. Просто обратите внимание, что Вы не используете двойные кавычки в команде затем.
Вот команды, как необходимо было бы ввести их в настройки ярлыка:
Копия "моя строка" к буферу обмена:
bash -c "xsel -ib <<< 'my string'"
Содержание копии my-file.txt
к буферу обмена:
bash -c "xsel -ib < my-file.txt"
Вывод копии my-command
к буферу обмена:
bash -c "my-command | xsel -ib"
Непосредственно вставляйте/пишите "мою строку":
bash -c "xvkbd -file - <<< 'my string'"
Непосредственно вставляйте/пишите содержание my-file.txt
:
bash -c "xvkbd -file my-file.txt"
Непосредственно вставляйте/пишите вывод my-command
:
bash -c "my-command | xvkbd -file -"
Обратите внимание на то, что ни один xsel
ни xvkbd
установлены по умолчанию, таким образом, вероятно, необходимо установить их сначала использующий эту команду:
sudo apt-get install xsel xvkbd