Как заставить Автоключ ввести символы Unicode?

У меня есть проблема с Автоключом: Я не могу вставка копии через него специальный символ Unicode. Вот пример:

Я француз, и во французской записи, Вы используете пространство перед точкой с запятой. Но в формальной типографии, Вы не используете регулярное пространство перед точкой с запятой, но ‘узким пространством без повреждений’, которое является символом Unicode U+202F.

Таким образом, когда я пишу формальные вещи на французском языке вместо всегда напрасно тратящего время, вводя CTRL+Shift+U +202F+ENTER +; + пространство', я хотел бы использовать Автоключевую новую фразу. Используя сокращение Space+;; (что означает, устно, вводя пространство, затем точка с запятой дважды). Что означает, когда я ввожу (где угодно) space+;;, автоключ преобразовывает его в  ; (который является узким пространством без повреждений, сопровождаемым точкой с запятой).

НО проблема здесь - это: когда я создаю новую фразу в Автоключе с  ;, затем, когда я использую сокращение, Автоключ заменяет его только ;, стирание узкого пространства без повреждений. И кажется, что это делает это с любым другим также специальным символом Unicode...

У кого-либо есть идея того, как обойти эту проблему?

Миллион благодарностей!

6
задан 7 August 2018 в 12:21

2 ответа

Две опции: (Дополнительную информацию см. в моем блоге и снимках экрана для опции 1),

Первая (намного более простая) опция

Обновите до порта python 3 автоключа (потому что python 3 имеет дело с unicode символами лучше, чем python 2),

Для меня установка работала следующим образом:

# Edit (April 2018). Autokey now uses python 3 by default. So try
pip3 install autokey

# Install the original autokey
sudo apt-get install autokey-gtk
# Update autokey to python 3 using pip3  
pip3 install --user autokey-py3

Затем удостоверьтесь, что Вы выполняете python3 версию, которая является, вероятно, в

~/.local/bin/autokey-gtk

С этим методом можно ввести unicode символы как фразы

Вторая опция (если Вы не можете стать автоключевыми-py3 для работы),

Используйте сценарий Python (Файл-> Новый-> Сценарий) вместе с буфером обмена системы

Вставьте следующее в сценарий

import sys                                                                                                                                                              
reload(sys)                                                                                                                                                             
sys.setdefaultencoding('utf8')                                                                                                                                          
from subprocess import Popen, PIPE                                                                                                                                        

def paste_character(symbol):                                                                                                                                                   
    c = Popen(['xclip', '-selection', 'clipboard'], stdin=PIPE)                                                                                                           
    c.communicate(symbol.encode('utf-8'))                                                                                                                                 
    keyboard.send_keys('<ctrl>+v')

paste_character('γ')

Это работает путем изменения настроек Python по умолчанию для работы с unicode правильно. Это затем отправляет, выбранный символ к буферу обмена (удостоверьтесь, чтобы Вы имели xclip установленный). Здесь я использовал γ в качестве примера). Затем это отправляет control+v для вставки символа.

Отдельно оплачиваемые предметы для второй опции

Второй метод может быть улучшен путем взятия всех кроме последней строки сценария, и помещая его в файл (позволяет, называют его MyCopy.py). Затем в предпочтениях Автоключа (Механизм выполнения сценария) скажите Автоключ, где этот файл. Затем сценарий становится

from MyCopy import paste_character
paste_character('γ')

Некоторые приложения не используют control+v для вставки (например, терминал использует control+shift+v). Но символ все еще будет на буфере обмена.

4
ответ дан 23 November 2019 в 08:00

У меня работает в Linuxmint 19.3, на котором работает Python 3.6.8.

НО у меня не работает ни Linuxmint 20.0, ни python 3.6.8, ни 3.8.5. Повторно получаю эту ошибку скрипта:

Имя сценария 'amacron'

Traceback (последний последний вызов);

File "/usr/lib/python3/dist-packages/autokey/service.py" 
line 485, in execute exec(script.code, scope)
File "", line 2, in 
NameError:name 'reload' is not defined

===

сценарий amacron:

import sys
reload(sys)
sys.setdefaultencoding('utf8')

from subprocess import Popen, PIPE
def paste_character(symbol):
    c = Popen(['xclip', '-selection', 'clipboard'], stdin=PIPE)
    c.communicate(symbol.encode('utf-8')) 
keyboard.send_keys('+v')
paste_character('ā')
0
ответ дан 5 November 2020 в 10:19

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

Похожие вопросы: