Горячие строки AutoHotkey не работают должным образом в затмении - PullRequest
2 голосов
/ 13 марта 2011

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

Некоторые из этих горячих строк отлично работают в таких редакторах, какwordpad или ultraedit, но в eclipse (моя версия 3.6.1) они не удаляют строку доступа правильно.

Очень простой пример:

  • Я печатаю # echo
  • Я получаю приглашение с переменной
  • Я предоставляю строку $ myVar
  • Строка вставляется в текущий файл

Как уже говорилось, это прекрасно работает во многих редакторах, но не в затмении, где части горячей строки - например, #ec - остаются передвывод, горячая строка не удаляется полностью.Странная вещь, иногда она оставляет 1 букву, иногда 3, без какой-либо очевидной логики.

В моем файле AutoHotkey foo.ahk у меня есть такой код:

::#echo::
InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
SendInput,
(
<?php echo(%VAR%); ?>
)
Return

КакНовичок с AutoHotkey У меня раньше были некоторые другие проблемы, которые я мог решить, поэтому они не должны быть источником описанной проблемы.

  • Скрипты со специальными символами, такими как немецкие умлауты, должны быть закодированы в UTF8
  • Сценарии или скомпилированные сценарии должны запускаться с правами администратора.

. Я понятия не имею, в чем может быть причина проблемы затмения, приветствуется любая подсказка.

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Я только что сам попробовал это и увидел то же самое поведение.Для меня переключение в режим SendPlay вместо исправления SendInput сделало все отлично.

Добавьте строку:

#Hotstring SP

непосредственно перед отправленным кодом и посмотрите, решит ли это проблему.

Посмотрите на команду «#Hotstring» в документации для получения дополнительной информации, а также на раздел «Параметры» «Горячие строки и автозамена».

UPDATE

Хорошо, попробуйте это:

#Hotstring B0

::#echo::
SendInput, {Control Down}{Shift Down}{Left 2}{Control Up}{Shift Up}
InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
SendInput,
(
<?php echo(%VAR%); ?>
)
Return

Строка '#Hotstring B0' не позволит AutoHotkey самостоятельно выполнять возвраты.Первая строка SendInput отправит дважды Ctrl-Shift-Left, чтобы выбрать напечатанный текст «#echo», который затем будет заменен вторым SendInput после InputBox.

Это немного более хакерски, и вам может понадобитьсяизмените число в '{Left 2}' на другое, в зависимости от того, как вы его используете, но для меня это тоже хорошо работает.

0 голосов
/ 20 апреля 2012

Зачем настаивать на горячих струнах?Вместо этого вы можете использовать странную горячую клавишу (например, Alt + Windows + V )

!#v::
InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
SendInput,
(
<?php echo(%VAR%); ?>
)
Return
...