【已解决】如何保持搜索查找结果高亮

遇到的问题

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

image

预期的效果

image

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

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

1 个赞

更新:我把自己的需求融合到一个插件里了,欢迎围观 240812 更新


原帖:借助 Dynamic Highlights 插件变通解决。

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

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

CSS 代码:

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

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

2 个赞

翻到了你的Modified for Chinese这篇,但是把你修改过的main.js覆盖原文件后重启Obsidian还是不行。对比了一下,只是改了两处minSelectionLength值为1,但奇怪我这里为啥不生效……
另外,光标所在词的高亮也有这个问题,三个汉字以上的才生效,需要把哪个值改成1个或者2呢?

你修改过

Modified for Chinese 不是我修改的。

好吧:joy_cat:,那你有试过吗?能试试看你那里能生效不? :melting_face:

解决了,删除插件后再手动安装,终于生效了