QuickAdd 文件列表单击 & 快速切换选单 以默认第三方应用打开 PDF 图片 文件夹

适用全部类型文件。楼主测试系统 Win11,MD 文档的默认应用是 VSCode、图片的是 WPS,

实例二效果展示设置的快捷键是 Alt + W

实例一:按住 Alt 键单击文件列表

基本配置参 QuickAdd JS & Templater JS 简介及相互修改
“QuickAdd Macro 加载 QuickAdd Capture”。

在默认应用打开单击文件,在系统文件资源管理器打开单击文件夹。

效果 GIF,点击展开

20240208

js quickadd 代码
function uniEv(item, type, func) {
    item.ev && item.removeEventListener(type, item.ev)
    item.ev = func; item.addEventListener(type, item.ev)
}; uniEv(document.querySelector('.tree-item.nav-folder.mod-root'), 'click', ev=> ev.altKey && app.openWithDefaultApp(ev.target.dataset.path))

代码中 ev.altKey && 即设置为按住 Alt 键的原理。

可参 JavaScript 键盘事件,附完整键码表 修改为其他键,或自行设置更多样的触发控制。

  • 注意:单击文件位置需在名称(如图红框)外。image

  • 部分插件可能也对文件列表有 Alt + Click 快捷键,注意防冲突。

  • 也许你还看了其他 QuickAdd 帖子。如果你有基础,可自行删除重复函数,把全部需要静默加载的代码放在同 Macro 里同一个 Capture,否则就一个 Capture 一组代码分开放。

实例二:快速切换选单 & 原文选区

基本配置参 QuickAdd JS & Templater JS 简介及相互修改“QuickAdd Capture 加载内部代码”。

以正则匹配判断,见代码 const rgx = 后部分。

无选中或选中内容不匹配,弹出快速切换选单。当前活动文档始终位于第一项。
先选择文档,再选择默认应用打开或显示在系统文件资源管理器。

选中内容匹配,以默认应用打开所选。通常用于打开文中图片。

效果

00237b2d73

js quickadd 代码
const endFuc = (str, path)=> str.endsWith(str.replace( /\.\// ).includes('/') ? path.slice(-2).join('/') : path.slice(-1))
const pin = (arr, x)=> { let pin = arr.indexOf(x); if (pin > -1) { arr.splice(pin, 1); arr.unshift(x) }; return arr }
const rgx = /^!|\[(?!\[).*?\]\(|\)$|\[\[|\]\]|\|.*\]\]?/g; let suggest = arr=> this.quickAddApi.suggester(p=> p, arr)
let file = app.workspace.getActiveFile(); let files = app.vault.getFiles(); let selected = String(getSelection())
let vPath = files.filter(p=> endFuc(selected.replace(rgx, ''), p.path.split('/'))).map(p=> p.path)[0]
if (selected.match(rgx)) { app.openWithDefaultApp(vPath) } else {
    let path = await suggest(pin(files.map(p=> p.path), file.path))
    if (!path) return; let place = await suggest(['默认应用', '所在目录'])
    switch (place) {
    case '默认应用': app.openWithDefaultApp(path); break
    case '所在目录': app.showInFolder(path); break
}}

相关: