VOOZH about

URL: https://dev.to/mikhkonkov/emacs-komandy-v-claude-code-cli-na-russkoi-raskladkie-dlia-iterm2-23pm

⇱ Emacs-команды в Claude Code CLI на русской раскладке для iTerm2 - DEV Community


Проблема

Я уже несколько месяцев работаю с Claude Code CLI в терминале и столкнулся с неприятной мелочью: команды Emacs для редактирования текста (Ctrl+A, Ctrl+E, Ctrl+W и т.д.) не работают на русской раскладке.

Раньше всё было нормально, так как я работал в терминале только на английском. Но сейчас, когда удобнее вводить промты на родном языке, эта проблема мешает.

  • Ctrl+A не прыгает в начало строки
  • Ctrl+W не удаляет слово назад
  • Ctrl+V для вставки скриншотов тоже мимо
  • Переключать раскладку каждый раз ради одной команды — боль

Решение

Это лечится одним key mapping файлом для iTerm2. Он:

  • маппит кириллические позиции клавиш на правильные управляющие коды (Emacs-команды работают и на RU, и на EN);
  • добавляет Option+а / Option+и как прыжки по словам;

Как применить

  1. Откройте iTerm2 → Settings → Profiles → Keys → Key Mappings.

    👁 iTerm2 profile key mapping

  2. Нажмите кнопку 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 и маппите кириллические кодпоинты на управляющие байты.

Удачи в промтах.