Тема: AHK: Скрипт — типографские и другие спецсимволы
Немного разобрался и написал скрипт, который помогает вводить разные символы, которых нет на клавиатуре
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; при печати ( сразу печатается ) курсор переводится внутрь скобок
; если после этого напечатать r
; или с и нажать "вправо", то произойдет замена симолов вместе со
; скобками на ® и © соответственно
:*:(::
SendInput (){left}
Input, Text, L2 V, {right}
if (Text = "r")
SendInput {backspace 3}®
if (Text = "c")
SendInput {backspace 3}©
return
:*:[::
SendInput []{left}
return
:*:{::
SendInput {{}{}}{left}
return
:*:"::
SendInput ""{left}
return
:*:'::
SendInput ''{left}
return
; если напечатать сразу 2, то заменяется на "елочки", но есть проблемы при переключении раскладок
:*:<::
Text := (double := !double)? "<>{left}{}" : "{right}{backspace 2}«»{left}"
SendInput %Text%
return
; длинное тире, работает отлично
:*:---::
SendInput {Space}—{Space}
return
; ™ товарный знак
; вариант, не работает префиксная клавиша Т
;T & M::
;SendInput ™
;return
; и еще вариант, тут в русской раскладке все равно печатается "m"
m::
if GetKeyState("t")
SendInput {backspace}™
else
{
Hotkey, %A_ThisHotkey%, Off
SendInput %A_ThisHotkey%
Hotkey, %A_ThisHotkey%, On
}
return
В комментариях написано, какие проблемы у конкретных участков. Общая проблема — при смене раскладки иногда не срабатывает, а {} в русской раскладке печатают сразу ХЪ, пока не разобрался как с этим справится, читал английский форум, но там раскладка одна и проблем таких нет.
Дополнительно хотелось бы чтобы выделенный кусок текста помещался при нажатии в скобки, кавычки и т.д. в зависимости от типа знаков.

