Тема: AHK: Автозамена текста из переменной
Собственно сабж. Как использовать переменную, как строку автозамены? Ну то есть, чтобы было что-то типо:
var = ddd
::%var%::DesireВы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Собственно сабж. Как использовать переменную, как строку автозамены? Ну то есть, чтобы было что-то типо:
var = ddd
::%var%::Desirehttp://www.autohotkey.com/board/topic/15015-regex-powered-dynamic-hotstrings/Да уже нашел, спасибо ![]()
Не срабатывает, если использовать в качестве аббревиатуры кириллицу. Пофиксить не получается :С
http://www.autohotkey.com/board/topic/15015-regex-powered-dynamic-hotstrings/
В топике ничего не было про regex. Уже очень какой то плохой вариант, и только для английского. Вообще спецом для задачи есть команда Input, обладающая большей гибкостью, чем сами строки автозамены.
Если я верно понял, polyethene ставит все клавиши клавиатуры под обработку, создавая десятки горячих клавиш.
Если я верно понял, polyethene ставит все клавиши клавиатуры под обработку, создавая десятки горячих клавиш.
Да, и я пытался добавить туда же кириллические символы, но безуспешно.
Input не подходит. Я пытаюсь сделать небольшую программку для себя, чтобы можно было быстро расшифровывать заданные мною из программы аббревиатуры.
Если бы в стандартной автозамене можно было использовать переменную, было бы очень здорово!
Ну так создавайте при каждом запуске соответствующий файл анк.
serzh82saratov, ладно, это не столь важно, буду писать латинскими буквами.
В Dynamic Hotstrings есть проблема, что после запуска этой библиотеки ahk начинает писать в английской раскладке кириллицу всякими иероглифами и так остается после перезахода в систему. Вы, случайно, не знаете, как пофиксить?
Desire, думаю на этот вопрос лучше всего ответит polyethene.
Спросите на оф.форуме. Народ там отзывчивый.
Я пытаюсь сделать небольшую программку для себя, чтобы можно было быстро расшифровывать заданные мною из программы аббревиатуры.
Помоему хорошая идея, да и делов то немного. Открываем GUI с автозаменами, редактируем вместе с опциями. Пишется всё в ини файл. При запуске скрипта автозамен он читает ини файл, создаёт требуемый скрипт, запускает его, закрывает себя.
Я пытаюсь сделать небольшую программку для себя, чтобы можно было быстро расшифровывать заданные мною из программы аббревиатуры.
Помоему хорошая идея, да и делов то немного. Открываем GUI с автозаменами, редактируем вместе с опциями. Пишется всё в ини файл. При запуске скрипта автозамен он читает ини файл, создаёт требуемый скрипт, запускает его, закрывает себя.
Я просто хотел, чтобы без созданий других .ahk
Тогда у меня такая идея:
Hot1 = ddd
Str1 = Desire
Hot2 = атп
Str2 = Автозамена текста из переменной
; --- Далее пилить ---
#NoEnv
ListLines Off
SetBatchLines -1
Global HotStrings := []
While Hot%A_Index% != ""
HotStrings[A_Index] := [Hot%A_Index%, Str%A_Index%]
EndChars = ()-[]{}:;'"/\`n %A_Tab%,.?!
Loop {
Input, chr, I V L1
SetTimer, Input, -20
}
Input:
If (!InStr(EndChars, chr) && (chars .= chr) != "")
return
If Match(chars, match)
SendInput % "{BS " StrLen(chars) + 1 "}{Raw}" match chr
chars := ""
return
Match(text, byref match) {
For k, v in HotStrings
If (text == v[1])
return 1, match := v[2]
}
Думаю regex и некоторые опции замен, можно без труда прикрутить в функции Match.
По-моему, проще всего создавать в какой-нибудь стандартной папке ("temp" или "Мои документы") дополнительный include-файл. А в GUI скрипта сделать кнопку "Применить" или "Сохранить", при нажатии на которую скрипт перезапускается и считывает этот файл заново.
Как вариант, если скрипт не требуется компилировать.
Ну это я уже предлагал, нужно конструировать ahk файл исходя из данных в окне.
Но:
Я просто хотел, чтобы без созданий других .ahk
Но если ТС надо автозамену без всяких опций, то думаю что мой готовый код всё же проще, ибо готовый.
Да и если интересен regex, то надо заменить только один символ, и в переменные можно писать шаблоны.
If (text == v[1])на
If (text ~= v[1])Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться