如何禁用 autohotkey 中的语法字符?
How to disable syntax characters in autohotkey?
我想在 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');
在 return 中,我收到错误消息:
行文本:$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);错误:热键无效。
您正在寻找 Hotstring rather than a Hotkey。当 键同时按下时触发热键 ,而当 键按顺序输入时触发热字串 。
此外,看到这是一个多行热字串,take a look at this让它工作。
基于此,这是我的代码(在键入“~pdo”时触发):
:*:~pdo::
MyMultilineHotstring =
(
$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');
)
SendInput, %MyMultilineHotstring%
我建议使用 clipboard and CTRL+V for such a long input. If not pasting the text, you'd need to send that in text mode 以避免将某些字符转换为某些按钮。例如 #
到 Windows 键。
此外,您还需要添加换行符。更多内容见下文。
首先,使用 hotstring to trigger when ~pdo
is typed. Use whichever options you see fit. I'd assume you'll be fine with just the * 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', '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');
)"
SendInput, ^v
return
这是你完成的剧本。 ^v
表示 CTRL+V 和 LTrim
(docs) 选项是否仍然可以正确格式化代码,而无需在后续部分的实际文本中添加额外的空格。
我想在 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');
在 return 中,我收到错误消息: 行文本:$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);错误:热键无效。
您正在寻找 Hotstring rather than a Hotkey。当 键同时按下时触发热键 ,而当 键按顺序输入时触发热字串 。
此外,看到这是一个多行热字串,take a look at this让它工作。
基于此,这是我的代码(在键入“~pdo”时触发):
:*:~pdo::
MyMultilineHotstring =
(
$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');
)
SendInput, %MyMultilineHotstring%
我建议使用 clipboard and CTRL+V for such a long input. If not pasting the text, you'd need to send that in text mode 以避免将某些字符转换为某些按钮。例如 #
到 Windows 键。
此外,您还需要添加换行符。更多内容见下文。
首先,使用 hotstring to trigger when ~pdo
is typed. Use whichever options you see fit. I'd assume you'll be fine with just the * 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', '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');
)"
SendInput, ^v
return
这是你完成的剧本。 ^v
表示 CTRL+V 和 LTrim
(docs) 选项是否仍然可以正确格式化代码,而无需在后续部分的实际文本中添加额外的空格。