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.

En 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

SintaxisSignificado
ctrl+kModificadores: ctrl alt shift meta mod
mod+k⌘ o Ctrl, según cuál se mantenga pulsada
j, downAlternativas
g gUna secuencia (1 segundo entre teclas)
GLa 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 }]}/>
PropDescripción
commands{ id, label, group?, keys?, keywords?, run }[]
keysAtajo de apertura (por defecto ctrl+k, ctrl+p; null para desactivarlo)
includeKeymapInclusión de las vinculaciones del mapa de teclas (por defecto true)
open / onOpenChangeControlado

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.

Editar esta página en GitHub