Autokey に問題があります:特殊なUnicode文字をコピーして貼り付けることができません。以下に例を示します。
私はフランス語で、フランス語の文章では、セミコロンの前にスペースを使用しています。しかし、正式な活版印刷では、セミコロンの前に通常のスペースを使用するのではなく、Unicode文字U + 202Fである「狭いノーブレークスペース」を使用します。
ですから、いつもタイピングの時間を無駄にするのではなく、フランス語で正式なものを書いているとき CTRL+Shift+U+ 202F
+ENTER+;+space'、Autokeyの新しいフレーズを使用したいと思います。略語Space+;;
を使用します(つまり、スペースを入力してから、セミコロンを2回入力します)。つまり、(任意の場所で)space+;;
と入力すると、autokeyはそれを ;
(セミコロンが後に続く狭いノーブレークスペース)に変換します。
しかし、ここでの問題はこれです:Autokeyで ;
を使用して新しいフレーズを作成し、略語を使用すると、Autokeyはそれを;
でのみ置き換え、狭い改行なしスペースを消去します。そして、他のあまりにも特殊なUnicode文字でこれを行うようです...
誰もこの問題を回避する方法のアイデアを持っていますか?
感謝万円!
2つのオプション:(オプション1の詳細とスクリーンショットについては my blog をご覧ください)
最初のオプション(はるかに簡単)
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
この方法では、ユニコード文字をフレーズとして入力できます
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を使用します)。ただし、キャラクターはクリップボードに残ります。