Стремительное развитие ИИ в последние годы привело к невиданному росту популярности Markdown. Почти все современные LLM — от ChatGPT до Claude — по умолчанию выдают ответы в этом формате. Мы привыкли оформлять в нем заметки в Obsidian, писать промпты, вести документацию в GitHub и общаться в рабочих мессенджерах. Markdown стал «лингва-франка» современного интернета.
Но есть одна проблема. Использовать Markdown с русским языком — это боль.
Вам нужно поставить заголовок? Alt+Shift -> # -> Alt+Shift обратно. Нужно выделить код? Снова чечётка по клавишам переключения раскладки. Стандартная русская раскладка в Windows будто застряла в прошлом веке. Клавиша Shift+3 выдает нам символ №, который в 2024 году нужен крайне редко, в то время как жизненно необходимые решетки, собаки и скобки заставляют нас постоянно прыгать между языками.
Я решил эту проблему для Windows с помощью небольшого скрипта на AutoHotkey (v2).
Идея: Слой AltGr
В большинстве европейских раскладок клавиша AltGr (правый Alt) используется для ввода дополнительных символов. В русской раскладке она практически не задействована (за исключением знака рубля ₽ на некоторых системах).
Я решил превратить её в «магическую кнопку», которая позволяет вводить любые символы из английской раскладки, не выходя из русской.
Что умеет мой конфиг?
-
Весь цифровой ряд: Теперь
AltGr + 1...0выдает те же символы, что иShift + 1...0на английской раскладке (!,@,#,$,%,^,&,*,(,)). Теперь ввести@для почты (askar@zhakenov.pro) или#для заголовка можно мгновенно. -
Markdown-friendly: Квадратные скобки
[]и обратные кавычки`для кода теперь всегда под рукой. -
Правильная типографика: Вместо обычного дефиса я добавил длинное тире
—наAltGr + -. -
Умные кавычки и скобки: Для русской типографики я использовал клавиши
БиЮ.-
AltGr + ,->< -
AltGr + .->> -
AltGr + Shift + ,->« -
AltGr + Shift + .->»
-
Реализация на AutoHotkey v2 (Windows)
Этот скрипт автоматически определяет, что включена русская раскладка, и активирует модификаторы только для неё. При переключении на английский — всё работает как обычно.
#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 этот простой скрипт превращает ввод текста в бесшовный процесс. Вам больше не нужно «переключать мозг» вместе с языком — вы просто пишете, а нужные символы всегда там, где вы ожидаете их увидеть.
Автор: Askarzh


