Проблема
Я уже несколько месяцев работаю с Claude Code CLI в терминале и столкнулся с неприятной мелочью: команды Emacs для редактирования текста (Ctrl+A, Ctrl+E, Ctrl+W и т.д.) не работают на русской раскладке.
Раньше всё было нормально, так как я работал в терминале только на английском. Но сейчас, когда удобнее вводить промты на родном языке, эта проблема мешает.
-
Ctrl+Aне прыгает в начало строки -
Ctrl+Wне удаляет слово назад -
Ctrl+Vдля вставки скриншотов тоже мимо - Переключать раскладку каждый раз ради одной команды — боль
Решение
Это лечится одним key mapping файлом для iTerm2. Он:
- маппит кириллические позиции клавиш на правильные управляющие коды (Emacs-команды работают и на RU, и на EN);
- добавляет
Option+а/Option+икак прыжки по словам;
Как применить
-
Откройте iTerm2 → Settings → Profiles → Keys → Key Mappings.
Нажмите кнопку Presets... → Import... и выберите файл с конфигом ниже (сохраните его как
ru-emacs.itermkeymapили вставьте через JSON-редактор).
Конфиг
{
"Key Mappings": {
"0x430-0x40000": {"Action": 11, "Text": "0x06"},
"0x438-0x40000": {"Action": 11, "Text": "0x02"},
"0x430-0x80000": {"Action": 11, "Text": "0x1b 0x66"},
"0x438-0x80000": {"Action": 11, "Text": "0x1b 0x62"},
"0x444-0x40000": {"Action": 11, "Text": "0x01"},
"0x443-0x40000": {"Action": 11, "Text": "0x05"},
"0x43b-0x40000": {"Action": 11, "Text": "0x0b"},
"0x433-0x40000": {"Action": 11, "Text": "0x15"},
"0x446-0x40000": {"Action": 11, "Text": "0x17"},
"0x43c-0x40000": {"Action": 11, "Text": "0x16"},
"0x43d-0x40000": {"Action": 11, "Text": "0x19"},
"0x449-0x40000": {"Action": 11, "Text": "0x0f"}
},
"Touch Bar Items": []
}
Шпаргалка по маппингам
Emacs-навигация на русской раскладке
| Клавиша (RU) | Что делает | Эквивалент EN |
|---|---|---|
Ctrl+ф |
в начало строки | Ctrl+A |
Ctrl+у |
в конец строки | Ctrl+E |
Ctrl+а |
символ вправо | Ctrl+F |
Ctrl+и |
символ влево | Ctrl+B |
Ctrl+л |
удалить до конца строки | Ctrl+K |
Ctrl+г |
удалить всю строку | Ctrl+U |
Ctrl+ц |
удалить слово назад | Ctrl+W |
Ctrl+н |
Yank (вставить из kill-буфера) | Ctrl+Y |
Option+а / Option+и
|
прыжок по словам вправо/влево |
Option+F / Option+B
|
Ctrl+м |
вставить скриншот в claude code cli | Ctrl+V |
Ctrl+щ |
развернуть вывод команд в claude code cli | Ctrl+O |
Почему это работает
iTerm2 ловит события клавиатуры до того, как macOS успевает решить «эта раскладка не знает Ctrl+a». Мы матчимся на конкретные кодпоинты Unicode (0x444 это ф, 0x443 — у, и т.д.) с модификатором 0x40000 (Control) и руками отправляем в TTY правильный байт (0x01 для Ctrl+A).
Итог
Один импорт пресета — и Claude Code CLI перестаёт быть пыткой при работе на русском. Промт теперь можно набирать, не дёргая Cmd+Space каждые пять секунд.
Если у вас другой терминал — подход тот же: ищите в их конфигах секцию key bindings и маппите кириллические кодпоинты на управляющие байты.
Удачи в промтах.

Top comments (0)