Настройка сочетаний клавиш Pi Agent

Сочетания клавиш Pi Agent полностью настраиваются. В этой главе описывается конфигурация сочетаний клавиш по умолчанию и то, как создать собственную схему сочетаний клавиш.


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

Файл конфигурации сочетаний клавиш находится в~/.pi/agent/keybindings.json。

После изменения выполните/reload, чтобы изменения вступили в силу без перезапуска.


Формат сочетаний клавиш

Формат сочетания клавиш:Modifier+Key. К модификаторам относятся ctrl, shift, alt и super; их можно комбинировать.

Среди них super работает только если терминал может отдельно сообщать об этой клавише-модификаторе (обычно полагаясь на протокол клавиатуры Kitty); он может не работать в неподдерживаемых терминалах.

Поддерживаемые клавиши делятся на следующие категории:

КатегорияЗначениеПример
Буквыa-zctrl+b、alt+d
Цифры0-9alt+1
Функциональные клавишиf1-f12f2
Клавиши со стрелкамиup、down、left、rightalt+left
Специальные клавишиescape、enter、tab、space、backspace、delete、home、end、pageUp、pageDownshift+enter
Символы` - = [ ] ; ' , . / и т.д.ctrl+], ctrl+-

В файле конфигурации клавиши-модификаторы записываются в нижнем регистре (например, ctrl+shift+p), тогда как в таблицах в тексте обычно используется запись Shift+Ctrl+P; они эквивалентны.


Краткий справочник стандартных сочетаний клавиш

В следующих четырёх таблицах перечислены заводские привязки по умолчанию по функциональным областям; они служат основой для настройки.

В этой главе перечислены только распространённые привязки; ctrl+], ctrl+alt+], pageUp/pageDown, alt+y, ctrl+z и клавиши выбора сеанса не включены. Полный список можно посмотреть с помощью /hotkeys в интерактивном режиме.

Операции в редакторе

Эта группа действует только в области редактора и отвечает за перемещение курсора и удаление текста.

ДействиеСочетание клавиш по умолчаниюОписаниеMode
Переместить курсор вверхupПереместить курсор вверх в редакторе; если он уже вверху, вместо этого листать более раннюю историю.Область редактора
Переместить курсор внизdownПереместить курсор вниз в редакторе; при достижении нижней границы вместо этого просматривать более новую историю.Область редактора
Переместить курсор влевоleft, ctrl+bПереместиться влево на один символ.Область редактора
Переместить курсор вправоright, ctrl+fПереместиться вправо на один символ.Область редактора
Переместиться влево на словоalt+left, ctrl+left, alt+bПереместиться влево на одно слово.Область редактора
Переместиться вправо на словоalt+right, ctrl+right, alt+fПереместить вправо на одно слово.Область редактора
Начало строкиhome, ctrl+home, ctrl+aПерейти к началу строки.Область редактора
Конец строкиend, ctrl+end, ctrl+eПерейти к концу строки.Область редактора
Удалить предыдущий символвозврат на одну позициюУдалить символ перед курсором.Область редактора
Удалить следующий символdelete, ctrl+dУдалить символ после курсора (действие редактирования).Область редактора
Удалить предыдущее словоctrl+w, alt+backspaceУдалить слово перед курсором.Область редактора
Удалить следующее словоalt+d, alt+deleteУдалить слово после курсора.Область редактора
Удалить до начала строкиctrl+uУдалить содержимое от курсора до начала строки.Область редактора
Удалить до конца строкиctrl+kУдалить содержимое от курсора до конца строки.Область редактора

Ввод и отправка

Эта группа управляет переносом, автодополнением и отправкой содержимого, а также применяется к области редактора.

ДействиеСочетание клавиш по умолчаниюОписаниеMode
Перевод строкиshift+enter, ctrl+jВставить символ новой строки.Область редактора
ОтправитьenterОтправить введённое содержимое.Область редактора
Tab / АвтодополнениеtabЗапустить автодополнение пути.Область редактора
Отменитьctrl+-Отменить последний шаг редактирования.Область редактора
Вставить удалённый текстctrl+yВставить последний удалённый текст.Область редактора

Приложение и сообщения

Эта группа отвечает за прерывание работы ИИ, управление содержимым редактора и очередью сообщений и в основном не зависит от фокуса редактора.

ДействиеСочетание клавиш по умолчаниюОписаниеMode
Прервать / ОтменитьescapeОтменить текущую операцию ИИ.Глобальный
Очистить область редактораctrl+cОчистить содержимое редактора; нажмите ещё раз, чтобы выйти из программы.Область редактора
Выходctrl+dВыйти из программы, когда редактор пуст (это относится к действию app.exit, отдельно от действий удаления в предыдущей таблице).Область редактора
Внешний редакторctrl+gРедактировать текущий ввод во внешнем редакторе.Область редактора
Вставить изображениеctrl+vВставить изображение из буфера обмена (Windows: alt+v).Область редактора
Копировать ответ ИИctrl+xСкопировать последнее сообщение ИИ.Область редактора
Отправить последующее сообщениеalt+enterПоставить сообщение в очередь последующих сообщений.Область редактора
Извлечь сообщение из очередиalt+upВернуть сообщение из очереди в редактор.Область редактора

Модель и рассуждения

Эта группа используется для переключения моделей и настройки поведения рассуждений и доступна в любое время во время разговора.

ДействиеСочетание клавиш по умолчаниюОписаниеMode
Селектор моделейctrl+lОткрыть селектор моделей.Глобальный
Переключить модель вперёдctrl+pПереключиться на следующую модель.Глобальный
Переключить модель назадshift+ctrl+pПереключиться на предыдущую модель.Глобальный
Переключить уровень рассужденийshift+tabЦиклически переключать уровни рассуждений.Область редактора
Переключить отображение рассужденийctrl+tРазвернуть/свернуть процесс рассуждений ИИ.Глобальный
Переключить вывод инструментаctrl+oРазвернуть/свернуть вывод вызова инструмента.Глобально (в /tree browser, переключает режим фильтра)

Настройка пользовательских сочетаний клавиш

Просто перечислите операции, которые вы хотите переопределить, в keybindings.json; операции, не указанные в списке, сохраняют свои значения по умолчанию.

Установите значение привязки в пустой массив, например"tui.altScreen.pageUp": []чтобы полностью отключить это сочетание клавиш.

Стиль Emacs

Если вы привыкли к сочетаниям клавиш Emacs, вы можете~/.pi/agent/keybindings.jsonиспользовать следующую конфигурацию в:

Пример

{
  "tui.editor.historyPrevious": "ctrl+p",
  "tui.editor.historyNext": "ctrl+n",
  "tui.editor.cursorUp": ["up"],
  "tui.editor.cursorDown": ["down"],
  "tui.editor.cursorLeft": ["left", "ctrl+b"],
  "tui.editor.cursorRight": ["right", "ctrl+f"],
  "tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
  "tui.editor.cursorWordRight": ["alt+right", "alt+f"],
  "tui.editor.deleteCharForward": ["delete", "ctrl+d"],
  "tui.editor.deleteCharBackward": ["backspace", "ctrl+h"],
  "tui.input.newLine": ["shift+enter", "ctrl+j"]
}

Два действия истории historyPrevious и historyNext не привязаны по умолчанию; они предназначены специально для просмотра истории отправок, а также переключают записи истории при многострочном вводе.

После привязки ctrl+p к предыдущему элементу истории, когда область редактора получает фокус, Ctrl+P будет перехвачен этой привязкой истории, и переключение модели вперёд временно перестаёт работать в этом сценарии.

Ctrl+P в списках выбора, таких как селектор модели, не затрагивается и по-прежнему выполняет собственное действие селектора.

Стиль Vim

Если вы привыкли к стрелкам Vim, вы можете использовать следующую конфигурацию:

Пример

{
  "tui.editor.cursorUp": ["up", "alt+k"],
  "tui.editor.cursorDown": ["down", "alt+j"],
  "tui.editor.cursorLeft": ["left", "alt+h"],
  "tui.editor.cursorRight": ["right", "alt+l"],
  "tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
  "tui.editor.cursorWordRight": ["alt+right", "alt+w"]
}

Здесь alt+h/j/k/l выбраны, чтобы избежать встроенных привязок, таких как Ctrl+H и Ctrl+D, поэтому используется серия Alt.

Конфигурация горячих клавиш Pi Agent переопределяет значения по умолчанию.

Каждую операцию можно привязать к одному или нескольким сочетаниям клавиш.

Операции, не указанные в файле конфигурации, сохраняют свои сочетания клавиш по умолчанию.


Показать все сочетания клавиш

В интерактивном режиме используйте следующую команду, чтобы отобразить все сочетания клавиш и их текущие привязки:

/hotkeys

Пример вывода:

编辑器
  tui.editor.cursorUp            up
  tui.editor.cursorDown          down
  tui.editor.cursorWordLeft      alt+left, ctrl+left, alt+b
  tui.input.submit               enter
模型与推理
  app.model.select               ctrl+l
  app.model.cycleForward         ctrl+p
  app.model.cycleBackward        shift+ctrl+p

Операции сочетаний клавиш используют ID с пространствами имён в формате "module.action".

ID без пространств имён в старых файлах конфигурации (таких как cursorUp, expandTools) будут автоматически перенесены в ID с пространствами имён при запуске; ручное изменение не требуется.

Эта команда выводит список всех доступных действий горячих клавиш, текущих привязок и связанных с ними функциональных областей, что делает её лучшим способом для устранения конфликтов привязок клавиш или поиска горячей клавиши для конкретной функции.


Клавиши в полноэкранном режиме

используйте--tui-mode fullscreenПри запуске транскрипт прокручивается в пределах области просмотра терминала, а редактор и нижняя область состояния остаются фиксированными.

На этом этапе клавиши home, end, pageUp и pageDown без клавиш-модификаторов используются для прокрутки транскрипта, а их варианты с ctrl по-прежнему относятся к редактору.

В обычном режиме оба набора клавиш действуют на редактор.

В полноэкранном режиме также есть специальные средства поиска и навигации: ctrl+shift+f ищет по транскрипту, а ctrl+up / ctrl+down переключаются между предыдущим и следующим помеченными сообщениями.

Привязки прокрутки в полноэкранном режиме имеют приоритет над привязками редактора и по-прежнему могут быть настроены через обычные привязки действий.

KeysОбычный режимПолноэкранный режим
home、endРедакторПрокрутка транскрипта
ctrl+home、ctrl+endРедакторРедактор
pageUp、pageDownРедакторПрокрутка транскрипта
ctrl+pageUp、ctrl+pageDownРедакторРедактор
ctrl+shift+f (ctrl+f в Windows/WSL)Не действуетПоиск по стенограмме
ctrl+up、ctrl+downНе действуетПерейти к предыдущему/следующему отмеченному сообщению
Другие расширения