30

2 つのハイフンで短いダッシュをトリガーし、3 つのハイフンで長いダッシュをトリガーしようとしています。お気に入り

:*?:---=::—
:*?:--=::–

働くことを除いて。これが私がたどり着いた場所です:

:*?:11::

SendLevel 1

Send 2

return

SendLevel 0

:*?:21::3

これは機能します(11は2を生成し、111は3を生成します)

:*?:--::

SendLevel 1

Send –

return

SendLevel 0

:*?:–-::—

これは同じスクリプトですが、'1' は '-' に置き換えられ、'2' は '–' に置き換えられ、'3' は '-' に置き換えられました。 「---」は「—」を生成するはずですが、使用しているバージョン (autohotkey.com の AutoHotKey_L v1.1.09.04) では Unicode が完全にサポートされていないため、機能しません。

4

5 に答える 5

61

.ahk テキスト ファイルは、UTF8 ではなくUTF8-BOMエンコーディングで保存する必要がありました。

このコメントで指摘されているように、より多くの可視性を得るために回答として投稿してください。

于 2016-09-07T22:22:13.737 に答える
1

以下のコードをAutoHotKey フォーラムからコピーしました。

;IMPORTANT, you must save this script as UTF-8 to make it work.

::!?::
::?!::
PutUni("‽")
Return

::neko::
PutUni("猫")
Return

:?:damn::
PutUni("✩☠#‼")
Return

;Paste UTF8 string (Hex encoded or not) as unicode.
;If you don't use Hex encoding, you must save your script as UTF8
PutUni(DataIn)
{
    SavedClip := ClipBoardAll
    ClipBoard =
    If RegExMatch(DataIn, "^[0-9a-fA-F]+$")
    {
        Loop % StrLen(DataIn) / 2
        UTF8Code .= Chr("0x" . SubStr(DataIn, A_Index * 2 - 1, 2))
    }
    Else
        UTF8Code := DataIn

    Transform, ClipBoard, Unicode, %UTF8Code%
    Send ^v
    Sleep 100 ;Generous, less wait or none will often work.
    ClipBoard := SavedClip
    Return
}

このPutUni関数は、目的の入力を目的の Unicode 出力に「変換」します。

于 2013-04-16T11:10:36.827 に答える