Homemade Source/Dataview snippets

[DataviewJS] 할당된 단축키를 기준으로 명령어 목록보기

반응형

할당된 단축키를 기준으로 명령어 목록보는 Dataviewjs snippet입니다.

예시

 

Dataviewjs Snippet

```dataviewjs
const getObj = (obj, path) => path.reduce((o, k) => (o && o[k] !== 'undefined') ? o[k] : undefined, obj);

function hl(keys, highlight) {
  if (!keys || !keys[0] || !keys[1] || keys[1][0] === undefined) return `${highlight}–${highlight}`;
  return highlight + keys.flat().join('+').replace('Mod', 'Ctrl') + highlight;
}

function getHotKeys(arr, highlight=true) {
  const highlightIndicator = highlight ? '**' : '',
        defaultKeys = arr.hotkeys ? [[getObj(arr.hotkeys, [0, 'modifiers'])], [getObj(arr.hotkeys, [0, 'key'])]] : undefined,
        customKeys = app.hotkeyManager.customKeys[arr.id] ? [[getObj(app.hotkeyManager.customKeys[arr.id], [0, 'modifiers'])], [getObj(app.hotkeyManager.customKeys[arr.id], [0, 'key'])]] : undefined; 
  return (customKeys || defaultKeys) ? hl(customKeys || defaultKeys, highlightIndicator) : '';
}

let cmds = dv.array(Object.entries(app.commands.commands))
  .map(v => ({
    id: v[1].id,
    name: v[1].name,
    hk: getHotKeys(v[1])
  }))
  .filter(v => v.hk !== '')
  .sort((a, b) => a.hk.localeCompare(b.hk));

dv.paragraph(`${cmds.length}개의 명령어 단축키가 있습니다. 사용자 정의 단축키는 <strong>굵게</strong> 표시됩니다.<br>`);
dv.table(["명령어 ID", "단축키 설명", "단축키"], cmds.map(v => [v.id, v.name, v.hk]));
```

관련글

 

옵시디언 기초: 단축키(Hotkeys)

옵시디언을 효과적으로 사용하기 위해서는 단축키의 이해와 활용이 중요합니다. 단축키를 이용하면 빠르게 노트를 생성, 편집, 검색할 수 있으며, 작업 효율을 대폭 향상시킬 수 있습니다. 옵시

kaminik.tistory.com

 

반응형