Atalhos de teclado
useKeymap, sequências, painel de ajuda ?, dicas de teclas e paleta de comandos.
Declare os atalhos uma vez com useKeymap. Text.js os encaminha, lista em uma sobreposição de ?, mostra no rodapé e permite buscá-los em uma paleta de comandos.
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
| Sintaxe | Significado |
|---|---|
ctrl+k | Modificadores: ctrl alt shift meta mod |
mod+k | ⌘ ou Ctrl, o que estiver pressionado |
j, down | Alternativas |
g g | Uma sequência (1 segundo entre as teclas) |
G | Maiúscula implica Shift |
? | Teclas imprimíveis correspondem ao caractere |
Os valores são uma função de tratamento ou uma associação com label, group, hint, disabled e noRepeat. Associações sem rótulo funcionam, mas ficam fora da sobreposição de ajuda.
useKeymapBindings() retorna as associações com rótulo ativas no momento, para você usar nos seus próprios rodapés e menus.
Os mapas de teclas passam por useInput, então as regras habituais se aplicam: campos com foco têm prioridade, uma tecla correspondente interrompe a propagação e um <Modal> aberto desativa as associações fora dele. Passe { priority, global, isActive } para mudar esse comportamento.
<KeyHelp>
Pressione ? para ver todas as associações com rótulo, agrupadas. A lista mostra o que está ativo no local em que foi aberta.
<KeyHelp keys="?" title="Keyboard shortcuts" /><KeyHints> e <StatusBar>
<KeyHints /> mostra as associações marcadas com hint: true ou os items explícitos. <StatusBar> é um rodapé de uma linha com um slot right.
<StatusBar right={<Text color="subtle">▼ iad1</Text>}> <KeyHints items={[{ keys: "ctrl+k", label: "commands" }]} /></StatusBar><Kbd>mod+k</Kbd> renderiza uma única tecla. formatKeys("ctrl+shift+p") retorna ⌃⇧P no macOS e ctrl+shift+P nos demais sistemas.
<CommandPalette>
Ctrl+K (ou Ctrl+P) abre um seletor com busca aproximada entre seus comandos e todas as associações com rótulo, com as letras correspondentes destacadas.
<CommandPalette commands={[{ id: "theme", label: "Toggle theme", group: "View", run: toggleTheme }]}/>| Prop | Descrição |
|---|---|
commands | { id, label, group?, keys?, keywords?, run }[] |
keys | Atalho para abrir (padrão ctrl+k, ctrl+p; null para desativar) |
includeKeymap | Listar associações do mapa de teclas (padrão true) |
open / onOpenChange | Controlado |
A paleta fecha antes de executar um comando, então os comandos podem abrir seus próprios modais. fuzzyMatch e fuzzyFilter são exportados para você usar nas suas próprias listas.