Перейти к содержанию

Горячие клавиши

Привязки внутри окна отладчика. Собственные mappings Neovim — в Командах Neovim, это отдельная система.

Истина в самом окне

F1 или ? внутри окна показывает действующие сейчас привязки, после всех слоёв конфигурации. Если клавиша делает не то, что написано здесь, значит её кто-то переназначил.

Выполнение

Работают в любом месте окна, в том числе в полях ввода Evaluate и Watches.

Аккорд Имя действия Что делает
F9 continue выполнять до следующей точки останова
F8 step_over выполнить строку, остановиться на следующей
F7 step_into войти в вызов на этой строке
Shift+F8 step_out доработать до возврата из функции
Cmd+F2 / Ctrl+F2 terminate завершить сессию
pause прервать работающую программу
restart перезапустить сессию

У pause и restart привязки по умолчанию нет; назначьте её в [ui.keymaps].

Панели

Аккорд Имя действия Панель
Tab next_panel следующая панель по кругу
Shift+Tab previous_panel предыдущая панель
Ctrl+Tab next_panel то же самое
Ctrl+Shift+Tab previous_panel то же самое
Ctrl+T focus_threads Threads
Ctrl+C focus_call_stack Call Stack
Ctrl+V focus_variables Variables
Ctrl+W focus_watches Watches
Ctrl+E focus_evaluate Evaluate
Ctrl+L focus_logs Logs
Ctrl+I focus_inspector Inspector
Ctrl+B focus_breakpoints Breakpoints

Буква закреплена за панелью, а не за её местом в раскладке. Буква панели, которую раскладка не показывает, не делает ничего. Стартует фокус на Variables.

Навигация внутри панели

Аккорд Имя действия Что делает
J, Down next_row следующая строка
K, Up previous_row предыдущая строка
G, Home top первая строка
Shift+G, End bottom последняя строка
L, Right expand развернуть узел дерева
H, Left collapse свернуть узел дерева
Enter, Space activate применить
D, Del delete_row удалить строку (Watches)
Esc cancel выйти из поля ввода
F1, ? help показать действующие привязки

Что означает «применить» в разных панелях

Панель J / K Enter
Threads курсор по списку выбрать поток
Call Stack сразу выбирает фрейм
Variables выделение в дереве свернуть / развернуть
Watches курсор по выражениям войти в поле ввода
Evaluate войти в поле ввода
Logs прокрутка на строку
Breakpoints выделение точки открыть место в редакторе

Shift+G в Logs возвращает автопрокрутку за хвостом, G её отключает.

Поиск по Variables

Только в панели Variables. Что именно попадает в область поиска — в разделе «Поиск» страницы Variables.

Аккорд Имя действия Что делает
/ search открыть строку поиска
N search_next следующее совпадение
Shift+N search_previous предыдущее совпадение
Ctrl+/ search_continue продолжить обход после partial
Esc cancel сбросить поиск

Совпадения ищутся с первой набранной буквы. Enter заканчивает ввод и возвращает клавиатуру панели — после этого N и Shift+N ходят по найденному. До этого они обычные буквы и уходят в поле.

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

Пока курсор стоит в текстовом поле, буквы остаются буквами — навигация не срабатывает. Аккорды с модификатором, F-клавиши, Esc и Tab работают и оттуда.

Переназначение

Четыре слоя, снизу вверх:

  1. умолчания с этой страницы;
  2. <корень>/.bugsaur-keys.jsonаккорд → действие, null снимает привязку;
  3. gui_keymaps в setup() плагина Neovim;
  4. [ui.keymaps] в .bugsaur/config.tomlдействие → аккорд, "" снимает привязку.

Слои 3 и 4 сливаются по действиям, поэтому проект, переопределивший одно действие, не гасит ваши личные привязки на остальные.

[ui.keymaps]
continue = "Alt+R"
step_over = "F2"
pause = ""        # снять привязку

Аккорд — модификаторы Cmd, Ctrl, Alt, Shift через + и имя клавиши (F1F20, буква, Enter, Space, ArrowDown, …). Порядок модификаторов не важен. Неизвестное действие, клавиша или модификатор останавливают запуск: хоткей с опечаткой иначе просто никогда не срабатывал бы.