Atajos de teclado
useKeymap, secuencias, ayuda superpuesta con ?, indicaciones de teclas y paleta de comandos.
Declara los atajos una sola vez con useKeymap. Text.js los dirige, los enumera en una capa superpuesta con ?, los muestra en el pie de página y permite buscarlos en una 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
| Sintaxis | Significado |
|---|---|
ctrl+k | Modificadores: ctrl alt shift meta mod |
mod+k | ⌘ o Ctrl, según cuál se mantenga pulsada |
j, down | Alternativas |
g g | Una secuencia (1 segundo entre teclas) |
G | La mayúscula implica Shift |
? | Las teclas imprimibles coinciden con el carácter |
Los valores son un manejador o una vinculación con label, group, hint, disabled y noRepeat. Las vinculaciones sin etiqueta funcionan, pero no aparecen en la capa de ayuda.
useKeymapBindings() devuelve las vinculaciones con etiqueta activas en ese momento, para tus propios pies de página y menús.
Los mapas de teclas pasan por useInput, así que se aplican las reglas habituales: los campos con el foco tienen prioridad, una tecla coincidente detiene la propagación y un <Modal> abierto desactiva las vinculaciones externas. Pasa { priority, global, isActive } para cambiar este comportamiento.
<KeyHelp>
Pulsa ? para ver todas las vinculaciones con etiqueta, agrupadas. La lista muestra las que están activas donde se abrió.
<KeyHelp keys="?" title="Keyboard shortcuts" /><KeyHints> y <StatusBar>
<KeyHints /> muestra las vinculaciones marcadas con hint: true o los items explícitos. <StatusBar> es un pie de página de una fila con un espacio right.
<StatusBar right={<Text color="subtle">▼ iad1</Text>}> <KeyHints items={[{ keys: "ctrl+k", label: "commands" }]} /></StatusBar><Kbd>mod+k</Kbd> renderiza una sola tecla. formatKeys("ctrl+shift+p") devuelve ⌃⇧P en macOS y ctrl+shift+P en otras plataformas.
<CommandPalette>
Ctrl+K (o Ctrl+P) abre un lanzador con búsqueda aproximada entre tus comandos y todas las vinculaciones con etiqueta, con las letras coincidentes resaltadas.
<CommandPalette commands={[{ id: "theme", label: "Toggle theme", group: "View", run: toggleTheme }]}/>| Prop | Descripción |
|---|---|
commands | { id, label, group?, keys?, keywords?, run }[] |
keys | Atajo de apertura (por defecto ctrl+k, ctrl+p; null para desactivarlo) |
includeKeymap | Inclusión de las vinculaciones del mapa de teclas (por defecto true) |
open / onOpenChange | Controlado |
La paleta se cierra antes de ejecutar un comando, por lo que los comandos pueden abrir sus propios modales. fuzzyMatch y fuzzyFilter se exportan para tus propias listas.