【问题标题】:AutoHotkey: How to transform a word into a start tag and end tag, e.g. "div" becomes "<div></div>"AutoHotkey:如何将单词转换为开始标签和结束标签,例如“div”变成“<div></div>”
【发布时间】:2016-07-29 21:38:52
【问题描述】:

我非常喜欢 Zen Coding 和其他有助于加快编码速度的功能,例如自动标签。尤其是在网络上使用普通文本编辑器时,用 AutoHotkey 模仿这种行为会非常有帮助:

输入div,点击CTRL+E,变成&lt;div&gt;&lt;/div&gt;,把光标放在|在中间&lt;div&gt;|&lt;/div&gt;

此外,这应该适用于每个单词,无论长度如何。

例如p → CTRL+E → &lt;p&gt;&lt;/p&gt;

span → CTRL+E → &lt;span&gt;&lt;/span&gt;

【问题讨论】:

  • 用空格代替 Ctrl-E 你可以使用Hotstrings::O:div::&lt;div&gt;&lt;/div&gt;{left 6}
  • 如前所述,我想要任意词。即使是whatsoever + CTRL+E 也应该变成&lt;whatsoever&gt;&lt;/whatsoever&gt;
  • 好的,现在目标很明确,那么解决这个问题的最佳尝试是什么?您是否尝试过调整类似的现有解决方案(如果有)?目前这个问题看起来像是一个为我做的请求。
  • 我不知道该怎么做,因为我是 AHK 的新手。是的,在问这里之前我搜索了很多。例如,我知道如何触发 CTRL+E,但这还不足以解决问题。
  • 我会使用编辑器的内置宏语言。

标签: autohotkey


【解决方案1】:

试试:

^e::
    Send, ^+{left}^c<^v></^v>
    StringLen, x, clipboard
    x := x+3
    Send, {left %x%}
return

并从帮助中找出它的工作原理和原因。

【讨论】:

  • +1 表示非常有创意。在粘贴或读取剪贴板内容之前,您可能需要清空剪贴板并在 ^c 之后添加 ClipWait
  • @MCL - 同意。我有一个更复杂的版本,它使用 ClipWait 并且还在开始时保存当前剪贴板并在结束时恢复它。我还检查是否在转换单词之前和之后是否已经有空格、制表符或终端标点符号,并适当地处理它们(我经常使用 Dragon NaturallySpeaking 来听写,或者有自动完成和热字串,有时会添加额外的前导或尾随空格)。我为 OP 简化了我的答案,因为我想通过实践来鼓励额外的学习(并且 OP 可以在消化后要求额外的指导)。
猜你喜欢
  • 2017-05-07
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 2022-08-13
  • 2018-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多