Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Предложите ещё варианты скриптов для вставки текста с помощью hotkeys.  (Прочитано 401 раз)

0 Пользователей и 1 Гость просматривают эту тему.

adawdp

  • Автор темы
  • Гость
2016 Jan 14; 09:49 PM; Oakville, ON, Canada.

— Вставка текста с использованием hotkeys обсуждалась неоднократно. Полагаю, что это актуально всегда.

— Хотелось бы знать кто каким образом реализует эту задачу.

— Я вот делаю так:
Код: Bash
  1. #!/bin/bash
  2. echo -n I’m\ not\ sure,\ really. | xsel -b -i
  3. echo -n I’m\ not\ sure,\ really. | xsel
  4. sleep 0.2s
  5. xdotool key Shift+Insert
— Это работает, но я, естественно не уверен всё ли здесь академически верно, ибо не специалист.

— Кроме того, возможно есть другая более простая или более надёжная реализация вставки текста по горячей клавише.

— Прошу поделиться вариантами скриптов или принципами их построения.

Оффлайн wpb2tk6zvx

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Друг, а зачем в середине
echo -n I’m\ not\ sure,\ really. | xsel
sleep 0.2s
?

Ещё я бы добавил в начало
CLIPBOARD=$(xsel -b)
и в конец
echo -n "$CLIPBOARD" | xsel -b -i
чтобы сохранить то, что было в буфере обмена.

Ну и скрипт целиком:
#!/bin/bash
CLIPBOARD=$(xsel -b)
TEXT="line\
 of text"
echo -n "$TEXT" | xsel -b -i
xdotool key Shift+Insert
echo -n "$CLIPBOARD" | xsel -b -i

adawdp

  • Автор темы
  • Гость
2016 Jan 15; 08:28 AM; Oakville, ON, Canada.

— Ну, wpb2tk6zvx, по hotkey вставляется в данном случае предложение I’m not sure, really. Если не использовать “\” то пробелы не отображаются. Наверное там какой-то другой синтаксис можно применить чтобы не было этого частокола из “\”. Как это сделать я по другому не придумал как через echo и экранирование каждого пробела. Ну я же сражу предупредил, не специалист! :)

— А когда твоё “творение” ещё и работает, то мотивация к дальнейшему “творчеству” резко снижается.:)

Пользователь решил продолжить мысль [time]15 Январь 2016, 17:56:47[/time]:
2016 Jan 15; 08:56 AM
— Красиво выглядит Ваш скрипт, но, во всяком случае у меня, почему-то не работает… Сейчас буду разбираться…

Пользователь решил продолжить мысль [time]15 Январь 2016, 18:33:10[/time]:
2016 Jan 15; 09:32 AM

— Без сна :) не работает, а лёгкая дремота sleep 0.2s делает у меня скрипт рабочим :)
Код: Bash
  1. #!/bin/bash
  2. CLIPBOARD=$(xsel -b)
  3. TEXT=$"I’m not sure, really…"
  4. echo -n "$TEXT" | xsel -b -i
  5. sleep 0.2s
  6. xdotool key Shift+Insert
  7. echo -n "$CLIPBOARD" | xsel -b -i
  8.  

— Наверное таки с переменными более правильно получается! Ну а вставка в оба буфера это уже детали.
— Да, а ещё у Вас wpb2tk6zvx, опечатка, Вы доллар ($) пропустили в третьей строке… Про доллары нельзя забывать, очень важная в жизни штука, знаете ли :) !
« Последнее редактирование: 15 Январь 2016, 17:43:58 от adawdp »

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
adawdp,
доллар($) после равно(=) не нужен!
TEXT="I’m not sure, really…"
echo "$TEXT"
« Последнее редактирование: 15 Январь 2016, 20:28:46 от Cxms »

adawdp

  • Автор темы
  • Гость
2016 Jan 15; 01:24 PM
— Действительно,Cxms, тогда только в sleep 0.2s было дело, без него что-то не работает…
(Нажмите, чтобы показать/скрыть)

 

Страница сгенерирована за 0.075 секунд. Запросов: 24.