키보드 단축키

useKeymap, 키 시퀀스, ? 도움말 오버레이, 키 힌트와 명령 팔레트.

useKeymap으로 단축키를 한 번 선언하세요. Text.js가 단축키를 라우팅하고, ? 오버레이에 나열하고, 푸터에 표시하며, 명령 팔레트에서 검색할 수 있게 해요.

실시간80×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

문법의미
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 슬롯이 있는 1줄짜리 푸터예요.

<StatusBar right={<Text color="subtle">▼ iad1</Text>}>  <KeyHints items={[{ keys: "ctrl+k", label: "commands" }]} /></StatusBar>

<Kbd>mod+k</Kbd>는 단일 키를 렌더링해요. formatKeys("ctrl+shift+p")는 macOS에서 ⌃⇧P를, 다른 환경에서는 ctrl+shift+P를 반환해요.

<CommandPalette>

Ctrl+K(또는 Ctrl+P)를 누르면 명령과 레이블이 있는 모든 바인딩을 퍼지 검색하는 런처가 열리고, 일치하는 글자가 강조 표시돼요.

<CommandPalette  commands={[{ id: "theme", label: "Toggle theme", group: "View", run: toggleTheme }]}/>
속성설명
commands{ id, label, group?, keys?, keywords?, run }[]
keys열기 단축키(기본값 ctrl+k, ctrl+p; null로 비활성화)
includeKeymap키맵 바인딩 나열(기본값 true)
open / onOpenChange제어형

팔레트는 명령을 실행하기 전에 닫히므로 명령에서 별도의 모달을 열 수 있어요. 직접 만드는 목록에서 쓸 수 있도록 fuzzyMatch와 fuzzyFilter를 내보내요.

GitHub에서 이 페이지 편집