AHK для кодирования фрагментов с помощью горячих строк - PullRequest
1 голос
/ 12 апреля 2019

Итак, я хочу использовать 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();

Но что, если мне нужен хороший способ переместить курсор к части " name " вставленной строки? это похоже на то, что кто-то еще решил, но я не хочу целую программу сниппетов, просто самый простой способ имитировать свойства {variable} или ^ variable надежных редакторов.

Является ли решение затем нажать стрелку назад х количество раз? Кажется неуклюжим

Чтобы запустить цикл, в который вставляется первая часть фрагмента, подождите пробел, а затем вставьте вторую часть?

Какая-то другая идея ввода, о которой я не думаю? Я бы предпочел не использовать пользовательский интерфейс, но это может быть путь вперед

1 Ответ

0 голосов
/ 13 апреля 2019

Так что моя надежда на простое избежание ввода пользовательского интерфейса, похоже, неуместна, но я с этим справлюсь.

По большей части я использовал такие поля ввода:

:*: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
}

У меня также есть только один, который работает так, как я задумал, отправляя первую часть скрипта, ожидая, когда я наберу текст, затем нажимая «control», а затем отправляя остальные, но использование переменных просто кажется более мощным.

Вот так выглядит этот человек, если кому-то интересно:

:*: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
}
...