如何解决如何在自动热键中禁用语法字符?
我想在 autohotkey 中创建一个程序,以便在输入 ~pdo 时它会用一长行代码替换它。我该怎么做才能使里面的符号不会被格式化为自动热键语法?
我尝试了以下代码:
~pdo:Send,$pdo = new PDO('MysqL:dbname=chat;host=localhost','root','simon sleeping123!@#');
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
date_default_timezone_set('America/New_York');
作为回报,我收到错误消息: 行文本:$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);错误:热键无效。
解决方法
对于这么长的输入,我建议使用 clipboard 和 CTRL+V。如果不粘贴文本,您需要将其发送到 text mode 以避免将某些字符转换为某些按钮。例如 #
到 Windows 键。
此外,您还需要添加换行符。更多内容见下文。
首先,在输入 ~pdo
时使用 hotstring 触发。使用您认为合适的任何 options。我认为您只需使用 * option 就可以了。
并且要发送多行内容,您可以使用换行符`n
(docs)明确指定换行符:
$pdo = new PDO('mysql:dbname=chat;host=localhost','root','simon sleeping123!@#');`n`n$pdo->setAttribute(PDO::ATTR_EM...
或者您可以更方便地使用 continuation section:
:*:~pdo::
Clipboard := "
(LTrim
$pdo = new PDO('mysql:dbname=chat;host=localhost','simon sleeping123!@#');
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
date_default_timezone_set('America/New_York');
)"
SendInput,^v
return
这是你完成的脚本。 ^v
表示 CTRL+V 并且使用了 LTrim
(docs) 选项我们还能正常吗格式化代码,不要在继续部分的实际文本中添加额外的空格。
您正在寻找 Hotstring 而不是 Hotkey。当键同时按下时触发热键,而当按顺序键入键时触发热字符串。
此外,看看这是一个多行热字符串,take a look at this 让它工作。
基于此,这是我的代码(在键入“~pdo”时触发):
:*:~pdo::
MyMultilineHotstring =
(
$pdo = new PDO('mysql:dbname=chat;host=localhost','simon sleeping123!@#');
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
date_default_timezone_set('America/New_York');
)
SendInput,%MyMultilineHotstring%
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。