Стремительное развитие ИИ в последние годы привело к невиданному росту популярности Markdown. Почти все современные LLM — от ChatGPT до Claude — по умолчанию выдают ответы в этом формате. Мы привыкли оформлять в нем заметки в Obsidian, писать промпты, вести документацию в GitHub и общаться в рабочих мессенджерах. Markdown стал «лингва-франка» современного интернета.
Но есть одна проблема. Использовать Markdown с русским языком — это боль.
Вам нужно поставить заголовок? Alt+Shift -> # -> Alt+Shift обратно. Нужно выделить код? Снова чечётка по клавишам переключения раскладки. Стандартная русская раскладка в Windows будто застряла в прошлом веке. Клавиша Shift+3 выдает нам символ №, который в 2024 году нужен крайне редко, в то время как жизненно необходимые решетки, собаки и скобки заставляют нас постоянно прыгать между языками.
Я решил эту проблему для Windows с помощью небольшого скрипта на AutoHotkey (v2).
В большинстве европейских раскладок клавиша AltGr (правый Alt) используется для ввода дополнительных символов. В русской раскладке она практически не задействована (за исключением знака рубля ₽ на некоторых системах).
Я решил превратить её в «магическую кнопку», которая позволяет вводить любые символы из английской раскладки, не выходя из русской.
Весь цифровой ряд: Теперь AltGr + 1...0 выдает те же символы, что и Shift + 1...0 на английской раскладке (!, @, #, $, %, ^, &, *, (, )). Теперь ввести @ для почты ([email protected]) или # для заголовка можно мгновенно.
Markdown-friendly: Квадратные скобки [] и обратные кавычки ` для кода теперь всегда под рукой.
Правильная типографика: Вместо обычного дефиса я добавил длинное тире — на AltGr + -.
Умные кавычки и скобки: Для русской типографики я использовал клавиши Б и Ю.
AltGr + , -> <
AltGr + . -> >
AltGr + Shift + , -> «
AltGr + Shift + . -> »
Этот скрипт автоматически определяет, что включена русская раскладка, и активирует модификаторы только для неё. При переключении на английский — всё работает как обычно.
#Requires AutoHotkey v2.0 #SingleInstance Force ; Скрипт активен только при русской раскладке (0x0419) #HotIf GetKeyboardLayout() == "0x0419" ; --- Полный верхний ряд (AltGr + цифра = US Shift символ) --- <^>!1::SendText "!" <^>!2::SendText "@" <^>!3::SendText "#" <^>!4::SendText "$" <^>!5::SendText "%" <^>!6::SendText "^" <^>!7::SendText "&" <^>!8::SendText "*" <^>!9::SendText "(" <^>!0::SendText ")" <^>!-::SendText "—" ; Длинное тире <^>!=::SendText "+" ; --- Квадратные и фигурные скобки --- <^>![::SendText "[" <^>!]::SendText "]" <^>!+[::SendText "{" <^>!+]::SendText "}" ; --- Пунктуация и кавычки-ёлочки (Б и Ю) --- ; Обычное нажатие дает символы для кода/Markdown, Shift — типографику <^>!,::SendText "<" <^>!.::SendText ">" <^>!+,::SendText "«" <^>!+.::SendText "»" ; --- Markdown и код --- <^>!;::SendText ":" <^>!'::SendText "'" <^>!\::SendText "|" <^>!/::SendText "/" <^>!s::SendText "_" <^>!k::SendText "``" ; Обратная кавычка <^>!SC029::SendText "``" ; Клавиша под Esc (тильда) #HotIf ; Функция проверки текущей раскладки GetKeyboardLayout() { WinID := WinExist("A") if !WinID return 0 ThreadID := DllCall("GetWindowThreadProcessId", "UInt", WinID, "UInt", 0) return Format("0x{:04X}", DllCall("GetKeyboardLayout", "UInt", ThreadID, "UInt") & 0xFFFF) }
Скачайте AutoHotkey v2.
Создайте файл RussianMarkdown.ahk, вставьте код и запустите его.
Чтобы забыть о проблеме навсегда, добавьте ярлык скрипта в папку автозагрузки Windows (Win+R -> shell:startup).
В эпоху ИИ, когда мы постоянно общаемся с машинами через текстовые интерфейсы, скорость набора спецсимволов становится критически важной. Для пользователей Windows этот простой скрипт превращает ввод текста в бесшовный процесс. Вам больше не нужно «переключать мозг» вместе с языком — вы просто пишете, а нужные символы всегда там, где вы ожидаете их увидеть.
Источник


