Skip to main content
Claude Code поддерживает настраиваемые сочетания клавиш. Запустите /keybindings для создания или открытия файла конфигурации в ~/.claude/keybindings.json.

Файл конфигурации

Файл конфигурации сочетаний клавиш — это объект с массивом bindings. Каждый блок указывает контекст и карту нажатий клавиш на действия.
Изменения в файле сочетаний клавиш автоматически обнаруживаются и применяются без перезагрузки Claude Code.
Этот пример привязывает Ctrl+E к открытию внешнего редактора в контексте чата и отменяет привязку Ctrl+U:

Контексты

Каждый блок привязки указывает контекст, где применяются привязки: До версии 2.1.205 контекст Doctor и действие doctor:fix существовали для экрана диагностики /doctor.

Доступные действия

Действия следуют формату namespace:action, например chat:submit для отправки сообщения или app:toggleTodos для отображения списка задач. Каждый контекст имеет определённые доступные действия.

Действия приложения

Действия, доступные в контексте Global:

Действия истории

Действия для навигации по истории команд:

Действия чата

Действия, доступные в контексте Chat: *На Windows без режима VT (Node <24.2.0/<22.17.0, Bun <1.2.23) по умолчанию используется Meta+M.

Действия автодополнения

Действия, доступные в контексте Autocomplete:

Действия подтверждения

Действия, доступные в контексте Confirmation: *На Windows без режима VT (Node <24.2.0/<22.17.0, Bun <1.2.23) по умолчанию используется Meta+M. До v2.1.257 действие confirm:toggleExplanation, привязанное к Ctrl+E по умолчанию, показывало сгенерированное моделью объяснение команды в подсказках разрешений Bash и PowerShell. Диалоги используют confirm:yes и confirm:no для принятия и отмены даже когда они не задают вопрос да или нет. Если вы привяжете простую букву, такую как y или n, в этом контексте, буква также действует на диалоги, которые никогда не показывают её как клавишу. Диалог, который показывает y и n как его клавиши, читает эти буквы сам и не требует привязки. В большинстве диалогов нажатие Ctrl+C или Ctrl+D дважды закрывает диалог вместо выхода из Claude Code. Подсказка после первого нажатия говорит, закрывает ли второе нажатие диалог или выходит. Обе клавиши зарезервированы и не могут быть переназначены. Этот пример привязывает y к confirm:yes и n к confirm:no:
С этими привязками y и n по-прежнему вводятся как буквы, пока текстовое поле имеет фокус. До v2.1.280 y также была привязана к confirm:yes и n к confirm:no по умолчанию. Если вы создали свой keybindings.json с помощью /keybindings до v2.1.280, файл содержит обе привязки и они остаются в силе, пока вы не удалите эти две строки.

Действия разрешений

Действия, доступные в контексте Confirmation для диалогов разрешений:

Действия стенограммы

Действия, доступные в контексте Transcript: transcript:toggleShowAll применяется только в классическом рендерере; в полноэкранном рендеринге средство просмотра стенограммы не предлагает переключение показа всего.

Действия поиска истории

Действия, доступные в контексте HistorySearch: Значения по умолчанию historySearch:next, historySearch:accept, historySearch:cancel и historySearch:execute применяются к встроенному поиску истории в классическом рендерере, который всегда ищет подсказки из всех проектов. historySearch:cycleScope вступает в силу только в полноэкранном рендеринге, где Ctrl+R открывает диалог поиска вместо этого и Ctrl+S циклирует его область. Другие клавиши диалога фиксированы и не могут быть переназначены: Enter или Tab помещает выделенное совпадение в ввод подсказки и Esc отменяет.

Действия задачи

Действия, доступные в контексте Task:

Действия темы

Действия, доступные в контексте ThemePicker:

Действия справки

Действия, доступные в контексте Help:

Действия вкладок

Действия, доступные в контексте Tabs: В диалоге с вкладками tabs:next и tabs:previous переключают вкладки, пока строка вкладок имеет фокус. В некоторых диалогах, таких как /help и /sandbox, клавиши переключения вкладок также работают изнутри содержимого вкладки. Up и Down перемещают фокус между строкой вкладок и содержимым вкладки, а список в содержимом реагирует на клавиши только пока он имеет фокус.

Действия вложений

Действия, доступные в контексте Attachments: Действия, доступные в контексте Footer: Пока элемент нижнего колонтитула выбран, например строка в панели агента ниже подсказки, Enter открывает его даже если вы переназначили Enter в контексте Chat на chat:queueSubmit или chat:newline. Привязки Chat на клавишах, которые контекст Footer не привязывает, такие как Shift+Tab для chat:cycleMode, продолжают работать пока элемент выбран.

Действия выбора сообщения

В списке сообщений меню перемотки вы перемещаетесь по сообщениям и выбираете одно с помощью действий выбора и их клавиш по умолчанию. Ваши привязки Select для этих действий применяются там же. Контекст MessageSelector не имеет собственных действий или привязок по умолчанию. Используйте его для изменения клавиши только для этого списка, привязав действие Select, такое как select:accept, в блоке MessageSelector. Этот пример привязывает o для выбора выделенного сообщения в меню перемотки, без изменения каких-либо других списков:
До v2.1.283 этот список игнорировал привязки Select и имел собственные действия: messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom и messageSelector:select. Если ваш keybindings.json привязывает одно из этих имён, привязка продолжает работать в этом списке как действие Select, которое делает то же самое. Home и End прыгают на любой конец списка; до v2.1.283 клавиши, такие как Shift+K и Shift+J, делали это по умолчанию.

Действия diff

Действия, доступные в контексте DiffDialog: Список файлов также реагирует на действия выбора, через их клавиши по умолчанию и ваши привязки Select. select:previous и select:next перемещаются к предыдущему и следующему файлу, а Enter открывает diff выбранного файла через select:accept. Чтобы изменить одну из этих клавиш только для списка файлов, привяжите действие Select в блоке DiffDialog. До v2.1.283 список файлов игнорировал привязки Select, и Enter открывал diff выбранного файла через отдельное действие diff:viewDetails. Если ваш keybindings.json привязывает diff:viewDetails, привязка продолжает работать в списке файлов как select:accept. Представление деталей diff также привязывает клавиши в стиле пейджера к стандартным действиям прокрутки. Эти привязки являются частью контекста DiffDialog и применяются только в представлении деталей; значения по умолчанию контекста Scroll, указанные в разделе Действия прокрутки, остаются неизменными.

Действия панели diff

Действия для панели diff, которую открывает /diff в полноэкранном рендеринге. app:cycleDiffBase находится в контексте DiffPanel, который активен пока панель открыта; остальные находятся в Global. Панель требует Claude Code v2.1.260 или более позднюю версию.

Действия выбора модели

Действия, доступные в контексте ModelPicker:

Действия ползунка усилий

Действия, доступные в контексте EffortSlider, ползунок, который открывается при запуске /effort без аргументов. Клавиши Enter и Escape ползунка не могут быть переназначены.

Действия выбора

Действия, доступные в контексте Select: В панелях списков, таких как /skills и /mcp, Claude Code применяет ваши привязки select:pageUp, select:pageDown, select:first и select:last. В большинстве других списков, таких как выбор модели /model, ваши привязки select:first и select:last применяются. PageUp и PageDown разбивают на страницы параметры в этих списках независимо от ваших привязок. До v2.1.280 эти другие списки игнорировали Home, End и ваши привязки select:first и select:last.

Действия plugin

Действия, доступные в контексте Plugin:

Действия параметров

Действия, доступные в контексте Settings. Действия select:accept и confirm:no переиспользуются из контекстов Select и Confirmation с поведением, специфичным для Settings: изменения применяются к каждому параметру сразу же при его изменении, поэтому Escape закрывает панель с сохранёнными изменениями, а не отклоняет их.

Действия агентов

Действия, доступные в контексте Agents, который применяется в представлении агента, открытом с помощью claude agents. Требует v2.1.257 или более позднюю версию. Пока представление агента открыто, Claude Code использует привязку Agents для любой клавиши, которую контекст Agents привязывает, и игнорирует привязку Chat или Global на той же клавише. Например, нажатие Ctrl+S в представлении агента переключает группировку сеанса, а не запускает значение по умолчанию chat:stash. Сочетание клавиш внешнего редактора ввода диспетчера не является действием Agents. Представление агента следует привязке chat:externalEditor контекста Chat, Ctrl+G по умолчанию. Привязки срабатывают на одиночных нажатиях клавиш в представлении агента, поэтому сочетание Ctrl+X Ctrl+E, привязанное к chat:externalEditor, не открывает редактор там.

Действия голоса

Действия, доступные в контексте Chat при включённой диктовке голосом:

Действия прокрутки

Действия, доступные в контексте Scroll при включённом полноэкранном рендеринге:

Синтаксис нажатия клавиш

Модификаторы

Используйте клавиши-модификаторы с разделителем +:
  • ctrl или control - клавиша Control
  • shift - клавиша Shift
  • alt, opt, option или meta - клавиша Alt в Windows и Linux, клавиша Option в macOS
  • cmd, command, super или win - клавиша Command в macOS, клавиша Windows в Windows, клавиша Super в Linux
Группа cmd обнаруживается только в терминалах, которые сообщают о модификаторе Super, таких как те, которые поддерживают протокол клавиатуры Kitty или режим modifyOtherKeys xterm. Большинство терминалов его не отправляют, поэтому используйте ctrl или meta для привязок, которые вы хотите использовать везде. Например:

Прописные буквы

Claude Code анализирует названия клавиш без учёта регистра, поэтому K — это то же самое привязка, что и k, а ctrl+K — то же самое, что ctrl+k. Чтобы привязать Shift и букву, напишите shift+k.

Раскладки клавиатуры, отличные от US

Пишите названия клавиш сочетаний Ctrl как латинские символы, даже если ваша активная раскладка клавиатуры вводит другие символы. То, как Claude Code сопоставляет нажатую вами клавишу с привязкой, зависит от типа раскладки:
  • При использовании нелатинской раскладки, такой как кириллица, Claude Code сопоставляет сочетания Ctrl по позиции клавиши в раскладке US, когда терминал использует протокол клавиатуры Kitty и сообщает эту позицию. В таком терминале с активной русской раскладкой нажатие Ctrl и физической клавиши W запускает ctrl+w. В терминале, который не сообщает позицию, Claude Code сопоставляет то, что отправляет терминал для нажатия клавиши: код управления ASCII запускает латинское сочетание, а нажатие клавиши, которое приходит как кириллический символ, не соответствует никакой привязке
  • При использовании раскладок, которые переставляют латинские буквы, такие как AZERTY, Claude Code сопоставляет букву, которую вводит клавиша, поэтому нажатие Ctrl и клавиши с надписью A запускает ctrl+a
До версии 2.1.247 нажатие сочетания Ctrl при использовании нелатинской раскладки не запускало его привязку в терминалах, которые используют протокол клавиатуры Kitty, таких как Ghostty, Kitty, WezTerm и iTerm2.

Аккорды

Аккорды — это последовательности нажатий клавиш, разделённые пробелами:
Нажимайте каждое сочетание клавиш в течение 3 секунд после предыдущего. Если вы ждёте дольше, Claude Code отменяет аккорд и показывает краткое уведомление об этом.

Специальные клавиши

  • escape или esc - клавиша Escape
  • enter или return - клавиша Enter
  • tab - клавиша Tab
  • space - пробел
  • up, down, left, right - клавиши со стрелками
  • pageup, pagedown - клавиши Page Up и Page Down
  • home, end - клавиши Home и End
  • backspace, delete - клавиши удаления
  • wheelup, wheeldown - события прокрутки колеса мыши

Отмена привязки сочетаний по умолчанию

Установите действие на null для отмены привязки сочетания по умолчанию:
Это также работает для привязок аккордов. Отмена привязки каждого аккорда, который использует префикс, освобождает этот префикс для использования в качестве привязки с одной клавишей. Аккорд в любом активном контексте сохраняет свой префикс зарезервированным, поэтому вы должны отменить привязку каждого аккорда в контексте, который его определяет. Claude Code привязывает эти аккорды по умолчанию на префиксе ctrl+x: ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, ctrl+x ctrl+s и ctrl+x tab в Chat, ctrl+x ctrl+b в Task и ctrl+x b в DiffPanel. Аккорд ctrl+x enter требует версии v2.1.247 или более поздней, ctrl+x b, ctrl+x ctrl+a и ctrl+x tab требуют версии v2.1.260 или более поздней, и ctrl+x ctrl+s требует версии v2.1.275 или более поздней. Чтобы вернуть ctrl+x как привязку с одной клавишей, отмените привязку всех из них:
Если вы отмените привязку некоторых, но не всех аккордов на префиксе, нажатие префикса всё ещё переводит в режим ожидания аккорда для оставшихся привязок.

Зарезервированные сочетания клавиш

Эти сочетания клавиш не могут быть переназначены:

Конфликты терминала

Некоторые сочетания клавиш могут конфликтовать с мультиплексорами терминала:

Текстовые поля

Если вы привяжете простую букву, цифру или пробел, вы все равно сможете вводить этот символ в текстовое поле внутри диалога или панели. Одно из таких полей — это ответ Other на вопрос, который задает Claude. Пока поле имеет фокус, печатаемая клавиша, которую вы нажимаете без Ctrl, Alt или Cmd, переходит в поле, и Claude Code не сопоставляет ее с вашими сочетаниями клавиш. Эти клавиши все еще выполняют свои сочетания клавиш, пока поле имеет фокус:
  • Клавиши, которые не вводят символ, такие как Enter, Escape, Tab и клавиши со стрелками
  • Любая клавиша, нажатая с Ctrl, Alt или Cmd
  • Второй нажим chord, уже выполняемого
В основной подсказке Claude Code сопоставляет каждую клавишу с активными контекстами, такими как Chat, и вводит клавишу только когда никакое сочетание клавиш ее не перехватывает.

Взаимодействие с режимом vim

Когда включен режим vim через /config → Editor mode, сочетания клавиш и режим vim работают независимо:
  • Режим vim обрабатывает ввод на уровне текстового ввода (движение курсора, режимы, движения)
  • Сочетания клавиш обрабатывают действия на уровне компонента (переключение задач, отправка и т. д.)
  • Клавиша Escape в режиме vim переключает INSERT в NORMAL режим; она не запускает chat:cancel
  • Большинство сочетаний Ctrl+клавиша проходят через режим vim в систему сочетаний клавиш
  • Клавиши vim не переназначаются через файл сочетаний клавиш. Чтобы сопоставить двухклавишную последовательность в режиме INSERT, такую как jj, с клавишей Escape, используйте параметр vimInsertModeRemaps
  • В режиме vim NORMAL ? показывает меню справки (поведение vim)
  • В режиме vim NORMAL / открывает поиск по истории, то же самое, что Ctrl+R в стандартном режиме

Валидация

Claude Code проверяет ваши сочетания клавиш и показывает предупреждения для:
  • Ошибок разбора (неверный JSON или структура)
  • Неверных имён контекстов
  • Неверных значений действий, таких как действие, которое не является строкой или null
  • Неизвестных имён действий, таких как опечатка зарегистрированного действия. Claude Code пропускает привязку и сохраняет любую привязку по умолчанию для этого ключа в силе. До версии 2.1.246 привязка с неизвестным именем действия молча отключала этот ключ
  • Конфликтов зарезервированных сочетаний
  • Дублирующихся привязок в одном контексте
Claude Code сообщает о предупреждениях при загрузке файла и записывает каждое в журнал отладки. Запустите Claude Code с --debug для просмотра деталей.