Сочетания клавиш
useKeymap, последовательности клавиш, справочная панель ?, подсказки клавиш и палитра команд.
Объявите сочетания клавиш один раз с помощью useKeymap. Text.js направляет их обработчикам, перечисляет во всплывающей справке ?, показывает в нижней панели и позволяет искать их в палитре команд.
useKeymap( { "j, down": { label: "Next", run: next, hint: true }, "k, up": { label: "Previous", run: previous }, "g g": { label: "Go to top", run: top }, "ctrl+s": { label: "Save", run: save, hint: true }, }, { group: "Navigation" },);return ( <> <StatusBar right={<Text color="subtle">main</Text>}> <KeyHints /> </StatusBar> <CommandPalette commands={commands} /> <KeyHelp /> </>);useKeymap
| Синтаксис | Значение |
|---|---|
ctrl+k | Модификаторы: ctrl alt shift meta mod |
mod+k | ⌘ или Ctrl, в зависимости от того, что нажато |
j, down | Альтернативы |
g g | Последовательность (1 секунда между нажатиями) |
G | Верхний регистр подразумевает Shift |
? | Печатные клавиши сопоставляются с символом |
Значения — это обработчик или привязка с label, group, hint, disabled и noRepeat. Привязки без названия работают, но не отображаются во всплывающей справке.
useKeymapBindings() возвращает активные в данный момент привязки с названиями для ваших собственных нижних панелей и меню.
Раскладки клавиш работают через useInput, поэтому действуют обычные правила: поля ввода в фокусе имеют приоритет, совпавшая клавиша останавливает распространение события, а открытый <Modal> отключает привязки за его пределами. Передайте { priority, global, isActive }, чтобы изменить это поведение.
<KeyHelp>
Нажмите ?, чтобы увидеть все привязки с названиями, разбитые на группы. Справка перечисляет привязки, активные там, где она открыта.
<KeyHelp keys="?" title="Keyboard shortcuts" /><KeyHints> и <StatusBar>
<KeyHints /> показывает привязки с отметкой hint: true или явно заданные items. <StatusBar> — однострочная нижняя панель со слотом right.
<StatusBar right={<Text color="subtle">▼ iad1</Text>}> <KeyHints items={[{ keys: "ctrl+k", label: "commands" }]} /></StatusBar><Kbd>mod+k</Kbd> отображает одну клавишу. formatKeys("ctrl+shift+p") возвращает ⌃⇧P на macOS и ctrl+shift+P на остальных платформах.
<CommandPalette>
Ctrl+K (или Ctrl+P) открывает панель запуска с нечётким поиском по вашим командам и всем привязкам с названиями, подсвечивая совпавшие буквы.
<CommandPalette commands={[{ id: "theme", label: "Toggle theme", group: "View", run: toggleTheme }]}/>| Prop | Описание |
|---|---|
commands | { id, label, group?, keys?, keywords?, run }[] |
keys | Сочетание клавиш для открытия (по умолчанию ctrl+k, ctrl+p; null для отключения) |
includeKeymap | Отображение привязок раскладки клавиш (по умолчанию true) |
open / onOpenChange | Управляемое состояние |
Палитра закрывается перед выполнением команды, поэтому команды могут открывать собственные модальные окна. fuzzyMatch и fuzzyFilter экспортируются для ваших собственных списков.