如何保持搜索查找结果高亮

遇到的问题

Ob 全局搜索,点击想要的文档名会在对应文档高亮所有查找结果,类似笔记中查找替换“选择全部”的效果,但鼠标一点击高亮就没了。

image

预期的效果

image

触发查找结果高亮后,在编辑时一直保持高亮,通过命令/快捷键或其他方式退出高亮。

也不一定要高亮,别的样式也行。

已尝试的解决方案

已测试过以下插件,均是鼠标一点击高亮就没了。

为这个目的测试后发现无关的其他插件

借助 Dynamic Highlight 插件变通解决。

基本配置参 单插件+CSS 管理连续空格
QuickAdd JS & Templater JS 简介及相互修改“QuickAdd Capture 加载内部代码”。

插件配置名称:T1。启用正则。

CSS 代码:

.T1 {text-decoration: underline dashed red;}
js quickadd 代码,点击展开
const fs = require('fs'), getFC = file=> app.metadataCache.getFileCache(file)
, DH = func=> { const plugin = 'obsidian-dynamic-highlights'
  , path = `${app.vault.adapter.basePath}/.obsidian/plugins/obsidian-dynamic-highlights/data.json`
  fs.readFile(path, 'utf8', (err, data)=> { if (err) throw err; let obj = JSON.parse(data); func(obj)
  fs.writeFile(path, JSON.stringify(obj, null, 2), 'utf8', err=> { if (err) throw err })
  app.plugins.disablePlugin(plugin); app.plugins.enablePlugin(plugin) })
}, cls = 'T1', str = getFC(app.workspace.getActiveFile()).frontmatter?.query.join('|') || app.workspace.activeEditor.editor.getSelection()
DH(obj=> { if (obj.staticHighlighter.queries[cls].query == '[]' && !str) return; obj.staticHighlighter.queries[cls].query = str || '[]' })

检测划选内容或属性类型为列表、键名为 query 的 YAML 值。

2 个赞