1

除非我使用代码点,否则 AutoHotKey 无法在 WSL 上插入数字

我想python3每次使用pipenv. 为此,我需要插入:pip --python /usr/bin/python3 etc.。但是,我不想--python /usr/bin/python3每次都输入,因此我使用 AutoHotKey 脚本自动化了该部分。

当我在记事本文件或路径栏等任何地方键入热字串时,以下行工作正常:

::pipenv::pipenv --python /usr/bin/python3 

当我输入pipenv记事本时,pipenv --python /usr/bin/python3就会插入字符串。

但是,如果我在 WSL(Linux 的 Windows 子系统)上键入它,我会得到:

 pipenv 66python LusrLbinLpython·

我在 CMD 中得到了相同的结果,但在 PowerShell 中却没有(我得到预期的输出)。

为了使它在命令行上工作,我不得不使用十六进制代码点(或实体引用,不确定正确的名称)而不是字符本身来重写我的脚本:

::pipenv::pipenv {U+2D}{U+2D}python {U+2F}usr{U+2F}bin{U+2F}python{U+33}

这样,输出pipenv --python /usr/bin/python3在命令行和任何其他环境中都是预期的。我很惊讶会出现这种情况,因为这些字符(-/3是普通的 ASCII 字符,所以我不明白为什么需要使用代码点。

AutoHotKey 脚本包含带有 CRLF 行终止符的 UTF-8 Unicode(带 BOM)文本。

简而言之,我设法使脚本工作。打开这个问题的原因是为了了解为什么会发生这种情况。谢谢。

4

0 回答 0