首页 > 解决方案 > AHK 用于使用热字串编码片段

问题描述

所以我想使用 AHK 创建通用片段,因为我在几个不同的程序中编码,但我想知道是否有一种简单的方法来包含变量点或跳转到变量。这就是我现在所拥有的:

::shh::var sh = SpreadsheetApp.getActiveSpreadsheet();`nvar ss = sh.getSheetByName("name");`nvar data = ss.getDataRange().getValues();

创建

sh = SpreadsheetApp.getActiveSpreadsheet();
var ss = sh.getSheetByName("name");
var data = ss.getDataRange().getValues();

但是,如果我想要一种将光标跳转到粘贴字符串的“名称”部分的好方法怎么办?这似乎是其他人已经解决的问题,但我不想要一个完整的片段程序,只是模仿强大编辑器的 {variable} 或 ^variable 功能的最简单方法。

然后按返回箭头 x 次数的解决方案是什么?看起来很笨重。

要开始循环粘贴片段的第一部分,等待一个空格,然后粘贴第二部分?

我没有想到的其他一些输入想法?我宁愿不使用 ui 的东西,但这可能是前进的道路

标签: autohotkey

解决方案


因此,我希望轻松避免 ui 输入的希望似乎落空了,但我会克服它。

在大多数情况下,我使用这样的输入框:

:*:arr]:: ; snippet for setting an array to the sheet
{
    InputBox, arrayName,Array GAS Snippet, Array name?,,,,0,300
    clipboard = 
        (
        ss.getRange(row+3, 1,%arrayName%.length, %arrayName%[0].length).setValues(%arrayName%);
        )
    send ^v
    return
}

我也只有一个按我最初打算的方式工作,发送脚本的第一部分,等待我输入然后按“控制”,然后发送其余部分,但是变量的使用感觉更强大。

如果有人好奇的话,这就是这个样子:

:*:sh]:: ; snippet that sends the spreadsheet app thingies
{
clipboard = 
(
var sh = SpreadsheetApp.getActiveSpreadsheet();`r`nvar ss = sh.getSheetByName("
)
send ^v
sleep, 2000

KeyWait Control, D
clipboard = 
(
");`r`nvar data = ss.getDataRange().getValues();
)
send ^v
return
}

推荐阅读