如何制作Autokey类型的Unicode字符?

我有一个Autokey的问题:我不能通过它复制粘贴一个特殊的Unicode字符。 这是一个例子:

我是法国人,在法语写作中,你在分号前使用空格。 但是在正式排版中,你不要在分号之前使用常规空格,而是使用“狭窄的不间断空间”,即Unicode字符U + 202F。

因此,当我用法语写正式的东西时,不要总是浪费时间键入CTRL + Shift + U + 202F + ENTER + ; + space ‘,我想使用Autokey新短语。 使用缩写Space+;; (这意味着,口头,打字空间,然后两次分号)。 这意味着我输入(任何地方) space+;; ,autokey将其转换为; (这是一个狭窄的不间断空间,后面跟一个分号)。

但问题是这样的:当我在Autokey中创建一个新短语时; ,当我使用缩写时,Autokey只替换它; ,擦除狭窄的不间断空间。 它似乎与任何其他太特殊的Unicode字符一起使用…

有没有人知道如何解决这个问题?

太感谢了!

两个选项:(有关选项1的更多详细信息和屏幕截图,请参阅我的博客 )

第一种选择 (更简单)

升级到autokey的python 3端口 (因为python 3比python 2更好地处理unicode字符)

对我来说,安装工作如下:

 # 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字符作为短语

第二个选项 (如果你不能让autokey-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('+v') paste_character('γ') 

这可以通过更改默认的python设置来正确使用unicode。 然后它将所选字符发送到剪贴板(确保安装了xclip )。 这里我以γ为例。 然后它发送control + v来粘贴字符。

额外的第二选择

第二种方法可以通过获取脚本的最后一行并将其放入文件(我们称之为MyCopy.py )来改进。 然后,在Autokey的首选项(脚本引擎)中,告诉Autokey此文件的位置。 然后脚本变成了

 from MyCopy import paste_character paste_character('γ') 

某些应用程序不使用control + v进行粘贴(例如终端使用control + shift + v)。 但角色仍将在剪贴板上。