【问题标题】:How to eliminate trailing space in AutoHotKey scripts如何消除 AutoHotKey 脚本中的尾随空格
【发布时间】:2021-08-09 05:26:26
【问题描述】:

AutoHotKey v. 1.1.33.09。 Windows 10、Firefox、Edge、Chrome、多个应用程序

我有几个冗长的电子邮件地址与我从事的一些非盈利工作相关联。我在自动热键脚本中为每个电子邮件地址、电话号码和邮寄地址创建快捷键,以加快表单填写。

在输出字符串中产生了不需要的尾随单个空格,这迫使我手动输入退格键以便继续填写正在填写的表单。

如何优雅地消除这些空间?

::.1::john.doe1@myhost.com
return
::.2::john.doe2@myhost.com
return
::.ad::1234 Address Blvd, Anytown, USA 99999-1234
return
::.p::1-800-555-5555
return

注意:在下面的示例中,下划线符号 _ 表示不需要的尾随空格。

.1[enter] 返回 john.doe1@myhost.com_

.2[enter] 返回 john.doe2@myhost.com_

.ad[enter] 返回 1234 Address Blvd, Anytown, USA 9999-1234_

.p[enter] 返回 1-800-555-5555_

【问题讨论】:

  • 我搜索了 AutoHotKey 网站快速参考和常见问题解答。 AutoHotKey 论坛的链接是死链接。我用关键字“AutoHotKeys”、“尾随”和“空格”搜索了 StackOverflow 论坛,发现了一些类似的请求。我发现所有回复都包含更复杂的用户需求和类似复杂的解决方案。我没有找到与这个简单要求相关的任何答案。我尝试在脚本中插入退格键,但没有任何效果。

标签: autohotkey spaces trailing


【解决方案1】:

O 选项(docs) 应该可以为您解决问题:

O:在产生替换时省略自动替换热字串的结束字符。当您希望通过仍然需要结束字符来保持热字符串明确,但实际上不希望结束字符显示在屏幕上时,这很有用。例如,如果:o:ar::aristocrat 是一个热字串,键入“ar”后跟空格键将产生没有尾随空格的“贵族”,这使您可以使单词复数或所有格,而无需按Backspace。使用 O0(字母 O 后跟零)关闭此选项。

所以你的脚本是:

:O:.1::john.doe1@myhost.com
:O:.2::john.doe2@myhost.com
:O:.ad::1234 Address Blvd, Anytown, USA 99999-1234
:O:.p::1-800-555-5555

请注意,我还删除了多余的returns。
仅当您不编写单行代码时才需要它们。

【讨论】:

  • 虽然这是一个非常合理的答案,但 OP 在问题中指出他们正在使用回车键来生成结束字符。如果 OP 使用空格作为结束字符,这可能是解决方案。
  • Enter 默认为结束字符。这工作得很好。虽然我真的不知道如果他们使用 enter 作为结束字符,OP 是如何在其中获得尾随空格的。但无论如何,O 选项应该是解决方案。
  • 那是我的观点。 O 选项只会在空格作为结束字符产生的情况下删除尾随空格。不过,这个答案可能对未来的访问者仍然有用,而且 OP 也有可能从他们的问题中省略了一些关键信息。
  • 对,是的,我明白你的意思。让我们看看他们看到这个会说什么。
  • 感谢您的出色回复,问题 100% 得到解决。我按照建议添加了 o 选项。我还删除了返回码。现在编码更清晰了。
猜你喜欢
  • 2015-05-11
  • 2017-09-17
  • 2019-11-27
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多