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.

Ao vivo80×18 · booting Turbolog…tsx
preview://keymap:1
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

SintaxeSignificado
ctrl+kModificadores: ctrl alt shift meta mod
mod+k⌘ ou Ctrl, o que estiver pressionado
j, downAlternativas
g gUma sequência (1 segundo entre as teclas)
GMaiú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 }]}/>
PropDescrição
commands{ id, label, group?, keys?, keywords?, run }[]
keysAtalho para abrir (padrão ctrl+k, ctrl+p; null para desativar)
includeKeymapListar associações do mapa de teclas (padrão true)
open / onOpenChangeControlado

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.

Editar esta página no GitHub