Проблема
Я уже несколько месяцев работаю с 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 и маппите кириллические кодпоинты на управляющие байты.
Удачи в промтах.
For further actions, you may consider blocking this person and/or reporting abuse
