微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在自动热键中禁用语法字符?

如何解决如何在自动热键中禁用语法字符?

我想在 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);错误:热键无效。

解决方法

对于这么长的输入,我建议使用 clipboardCTRL+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 举报,一经查实,本站将立刻删除。