
私は問題を抱えているオートキー: 特殊な Unicode 文字をコピーして貼り付けることはできません。次に例を示します。
私はフランス人ですが、フランス語の文章ではセミコロンの前にスペースを使います。しかし、正式なタイポグラフィでは、セミコロンの前に通常のスペースは使わず、Unicode 文字 U+202F の「狭いノーブレーク スペース」を使います。
したがって、フランス語でフォーマルな文章を書くときに、常にCTRL+ Shift+ U+ 202F
+ ENTER+ ;+ space' と入力して時間を無駄にする代わりに、Autokey の新しいフレーズを使用したいと思います。省略形を使用しますSpace+;;
(口頭で言うと、スペースを入力してからセミコロンを 2 回入力します)。つまり、(どこでも) と入力するとspace+;;
、Autokey によって ;
(狭い改行なしのスペースとセミコロン) に変換されます。
しかし、ここで問題となるのは、Autokey で を使用して新しいフレーズを作成し ;
、その略語を使用すると、Autokey はそれを のみに置き換え;
、狭い改行不可スペースを消去してしまうことです。また、他の特殊な Unicode 文字でも同じことが起こるようです...
この問題を回避する方法を誰か知っていますか?
どうもありがとう!
答え1
2つのオプション: (私のブログオプション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文字をフレーズとして入力できます
2番目のオプション(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('<ctrl>+v')
paste_character('γ')
これは、デフォルトの Python 設定を変更して Unicode を正しく操作できるようにすることで機能します。次に、選択した文字をクリップボードに送信します (xclip
インストールされていることを確認してください)。ここでは例として γ を使用しました)。次に、control+v を送信して文字を貼り付けます。
2番目のオプションの追加
2番目の方法は、スクリプトの最後の行以外をすべて取り出してファイル(と呼ぶことにします)に入れることで改善できますMyCopy.py
。次に、Autokeyの設定(スクリプトエンジン)で、このファイルの場所をAutokeyに伝えます。すると、スクリプトは次のようになります。
from MyCopy import paste_character
paste_character('γ')
一部のアプリケーションでは、貼り付けに control+v を使用しません (例: ターミナルでは control+shift+v を使用します)。ただし、文字はクリップボードに残ります。
答え2
私の環境では、Python 3.6.8 を実行する Linuxmint 19.3 で動作します。
しかし、Linuxmint 20.0 では、Python 3.6.8 でも 3.8.5 でも動作しません。次のスクリプト エラーが繰り返し発生します。
スクリプト名「amacron」
トレースバック(最新の呼び出しが最後)
ファイル "/usr/lib/python3/dist-packages/autokey/service.py" 485行目、exec(script.code, scope) の実行 ファイル「」、2行目、 NameError:名前 'reload' が定義されていません
===
amacron スクリプト:
インポートシステム リロード(sys) sys.setdefaultencoding('utf8') サブプロセスからインポートPopen、PIPE def paste_character(シンボル): c = Popen(['xclip', '-selection', 'clipboard'], stdin=PIPE) c.communicate(シンボル.encode('utf-8')) キーボードのsend_keys('+v') paste_character('ā')