思源笔记 SiYuan v2.9.6 版本更新详解:快捷键扩展、属性视图升级与细节缺陷修复

发布时间:2026/9/9 22:15:35

思源笔记 SiYuan v2.9.6 版本更新详解:快捷键扩展、属性视图升级与细节缺陷修复 思源笔记 SiYuan v2.9.6 版本更新详解快捷键扩展、属性视图升级与细节缺陷修复【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan本文基于思源笔记SiYuan官方变更记录 v2.9.6.md 编写。v2.9.6 是一个以“细节打磨 开发者能力升级”为主题的版本它在编辑器快捷键体系上补齐了「复制文本 *」「优化排版」两个可配置入口并围绕属性视图Attribute View集中交付了列过滤器、多选列类型、列计算与行列操作等一系列数据库能力同时为插件系统新增了input-search事件总线。阅读本文后你将完整了解该版本的 8 项改进、7 项缺陷修复与 6 项开发特性并能结合仓库源码定位到每项能力背后的实现文件与调用链。该变更记录位于仓库app/changelogs目录下与 v2.8.4v2.12.8 其它版本保持一致的多语言发布结构英文 v2.9.6.md、简体中文 v2.9.6_zh_CN.md、繁体中文 v2.9.6_zh_CHT.md。一、版本总览官方对该版本的定位是一句简洁的描述This version fixes some detail defects, it is recommended to upgrade.本版本修复了一些细节缺陷建议升级。这意味着 v2.9.6 属于维护性质的小版本侧重于修复影响日常使用的交互问题与打磨体验细节而非引入颠覆性的大功能。从变更内容看v2.9.6 的价值点集中在三条线上编辑器与快捷键复制文本 *与优化排版从“只能通过菜单/按钮触发”变为“支持自定义快捷键”属性视图Attribute View作为思源在结构化数据管理上的核心能力一次性收获列过滤器、行浮窗打开、多选列、列计算、行列操作五类增强插件生态新增input-search事件总线让插件可以感知用户在搜索面板中的输入行为。二、改进功能详解Enhancementv2.9.6 共包含 8 项改进可从源码与交互两个层面逐一解读。2.1 快捷键配置复制文本 *与优化排版#8742、#8767这两项改进本质上是把原本固化的命令接入思源的快捷键Keymap体系。在编辑器快捷键处理模块 commonHotkey.ts 中可以看到完整的使用方式import {copyTextByType} from ../toolbar/util; // ... if (matchHotKey(window.siyuan.config.keymap.editor.general.optimizeTypography.custom, event)) { // 触发“优化排版” } // ... copyTextByType(selectElements.map(item item.getAttribute(data-node-id)), protocolMd); copyTextByType([protyle.block.rootID], protocolMd); copyTextByType(selectElements.map(item item.getAttribute(data-node-id)), id); copyTextByType([protyle.block.rootID], protocol); copyTextByType(selectElements.map(item item.getAttribute(data-node-id)), blockEmbed);从这段代码可以读出几个实现事实配置路径快捷键统一读取window.siyuan.config.keymap.editor.general下的自定义键位.custom字段即对应“设置 → 快捷键 → 编辑器 → 通用”分组复制文本 *的多目标语义*表示不止一种复制格式。代码通过 toolbar/util.ts 导出的copyTextByType函数以不同的“复制类型”参数protocolMd、id、protocol、blockEmbed对选中的块执行复制分别对应协议化 Markdown 链接、块 ID、思源协议链接、嵌入引用等复制形式类型定义copyText与optimizeTypography均已作为快捷键配置项写入配置类型 config.d.ts分别位于第 1026 行与第 1048 行的editor.general结构下并在按键映射默认值 constants.ts 中登记copyText: {default: , custom: }默认空键位、由用户自行绑定。实战建议更新到 v2.9.6 后可在「设置 → 快捷键 → 编辑器」中为「复制文本 *」与「优化排版」分别指定顺手的热键例如将「优化排版」绑定为CtrlShiftO将「复制为协议链接」绑定到CtrlShiftC一类的组合替代原先的右键菜单操作。2.2 KaTeX 宏定义设置不再检查拼写PR #8763数学公式宏Macro在思源中通过editor.katexMacros配置项维护其类型定义位于 config.d.ts配置入口出现在编辑器设置页 editorTab.ts 中而宏的实际展开渲染由 mathRender.ts 负责。该 PR 的诉求是宏定义输入框中的自定义宏名称往往形如\foo这类非标准单词不应再被浏览器的拼写检查红线标记。v2.9.6 通过在宏定义设置区域关闭拼写检查消除了编辑宏时的视觉干扰。如果你使用大量自定义 LaTeX 宏这一改动会直接改善书写体验。2.3 引用计数与其它按钮的防重叠#8715在行内公式、引用等行级内容上思源会叠加显示引用计数等操作按钮。此前当多个按钮空间不足时会出现相互重叠影响点击。本版本对按钮的排布逻辑做了收敛避免引用计数与其邻近操作按钮交叠。2.4 文档树文档悬浮提示改进#8722文档树File Tree上的文档悬浮层此前与编辑器内的其它悬浮层tip 层在视觉与行为上不统一。此次将文档树悬浮提示统一为与其它提示层一致的交互样式属于界面一致性打磨。2.5 标签面板按钮顺序调整#8741标签Tag面板工具栏中的「排序」图标被移动到「刷新」图标之后减少高频刷新操作与排序入口之间的误触属于按钮布局的细节优化。2.6 官方同步删除云端目录性能优化#8759当用户通过官方云同步删除一个包含大量文件的目录时云端需要递归清理该目录下的所有对象。v2.9.6 对这条删除链路进行了性能改进缩短大批量目录删除的等待时间。该能力与内核层的数据同步模块相关对应仓库中负责同步与云端目录维护的实现参考 api/sync.go 与 model/cloud_service.go 所在的同步代码域。2.7 界面细节打磨#8732一项综合性 UI 改进涵盖多个窗口与面板的细节表现属于没有单独展开的通用界面打磨项可在实际使用中感知例如间距、hover 态、滚动条与按钮反馈等。三、修复缺陷详解Bugfixv2.9.6 共修复 7 个缺陷按模块归类如下编号问题影响场景与修复含义#8727右键菜单选择以后不关闭在编辑器中通过右键菜单触发某项操作后菜单应当自动收起此前某些操作路径下菜单残留本版修复#8731无法编辑第一个嵌入块当一个嵌入块Embed Block恰好是文档的第一个块时无法进入编辑修复后文档首块为嵌入块时也可正常编辑#8739移动端移动面板被搜索遮挡移动端拖动文档或面板时移动浮层会被搜索界面遮挡而无法操作属于移动端手势/浮层层级问题#8746浮窗中的备注弹出后无法移动在引用浮窗等浮动层内查看块备注时备注弹层无法被拖动影响多显示器/分屏场景#8748导出 .sy.zip 文档题头图未导出以 .sy.zip 格式导出文档时文档题头图封面图缺失修复后导出包会正确携带题头图资源#8749「定位打开的文档」在创建文档后失效「定位打开的文档」Always Select Opened Doc开关在新建文档后不再生效无法自动定位到新文档#8758「分享到社区」流云资源文件 URL 不正确通过流云LiuYun托管资源时「分享到社区」生成的资源文件 URL 不正确导致外链失效其中与导出相关的修复对应 model/export.go 所在的内核导出实现域「定位打开的文档」属于文件树交互相关实现可追溯至前端文件树与文档切换逻辑。整体上这批修复覆盖了桌面端、移动端与导出流程符合“建议升级”的版本定性。四、开发者相关变更Development这是 v2.9.6 中技术含量最高的一组变更其中 5 项都指向**属性视图Attribute View**这一思源的结构化数据基础设施另外 1 项面向插件系统。4.1 属性视图列过滤器#8664属性视图的每个视图View可以定义一组过滤条件Filter。v2.9.6 为列级过滤补充了能力支撑。在内核层过滤条件以树形结构存储在视图中拷贝视图时需要对过滤树中叶子节点引用的列 ID 做重映射——这一逻辑实现在 filter.go 的remapFilterColumns函数其单元测试见 filter_test.go 的TestRemapFilterColumns。前端侧视图渲染时读取并应用过滤条件相关渲染路径集中在 api/av.go视图渲染入口RenderAttributeView等见第 931 行附近与属性视图列渲染模块。使用方式在表格视图的表头筛选器或视图工具栏中打开过滤器配置选择列、比较运算符与取值即可按列筛选行多个条件可组合为条件组。4.2 属性视图行支持浮窗打开#8667此前属性视图中的行只能原地编辑v2.9.6 支持在浮动窗口中打开某一行使你可以把行作为独立的编辑浮层拖到屏幕任意位置便于对照多条记录进行编辑。这项能力与思源既有的浮窗floating window框架打通行的字段在浮窗中保持可编辑。4.3 属性视图多选列类型#8695新增MultiSelect多选列类型允许一条记录在该列同时保存多个选项值。前端列类型注册代码位于 col.tsid: multiSelect, // ... label: window.siyuan.languages.multiSelect,可以看到该类型在渲染层以multiSelect作为内部类型 ID并在列设置中以国际化文案multiSelect展示。相应地过滤交互在 filter.ts 中做了分支处理第 537、884 行分别处理单选与多选场景下的占位提示即单列类型使用单选控件而多选列在过滤时支持多值选择例如“选项包含 A 或 B”。4.4 属性视图列计算#8699列计算允许对数值型等列执行聚合运算求和、均值、计数、最值等并将结果显示在视图底部或对应位置。后端写路径实现在 attribute_view.go// setAttributeViewColumnCalc 处理列计算相关的操作 func setAttributeViewColumnCalc(operation *Operation) (err error) {即前端发起列计算配置的写操作后由该函数完成校验与落盘随后视图重新渲染展示计算结果。4.5 属性视图行列操作#8769在以上单项能力之上v2.9.6 还完善了行列层面的整体操作能力新增/删除行、插入/移动/删除列、列宽与字段调整等在视图内的组合操作使属性视图从“能看能改字段”进一步走向“能灵活组织行列结构”为表格/看板/画廊等布局共享同一套数据结构打好基础。4.6 插件事件总线input-search#8725这是对插件开发者最直接的一项 API 增强思源在搜索面板的输入事件中新增了input-search事件插件可以订阅它感知用户搜索行为。事件的实际派发点位于 util.ts 的inputEvent函数中第 13321339 行。当用户在搜索面板输入关键词、触发防抖计时后搜索模块在发起搜索请求前会遍历所有已加载插件并广播事件edit.protyle?.app.plugins.forEach(item { item.eventBus.emit(input-search, { protyle: edit, config, searchElement: searchInputElement, }); });从派发代码可以看出事件负载payload包含三个字段字段含义protyle当前编辑器实例edit可据此访问当前打开的文档上下文config搜索面板配置Config.IUILayoutTabSearchConfig包含query等当前状态searchElement搜索输入框 DOM 元素便于插件读取最新输入值或注入 UI在插件侧只需在启动逻辑里注册监听即可使用this.eventBus.on(input-search, (payload) { const {config, searchElement} payload; // 例如记录搜索词、统计搜索频率或联动其它面板 console.log(用户正在搜索, config.query, searchElement.value); });这个事件让第三方插件第一次可以在不改动内核的前提下旁路感知全局搜索的输入流是本次版本对插件生态最有价值的扩展点非常适合用来做搜索词统计、搜索建议增强或与外部服务联动的插件。五、升级建议与验证方式该版本建议升级尤其推荐以下用户升级重度使用快捷键的键盘流用户可解锁复制文本 *与优化排版的热键使用属性视图组织任务、阅读笔记或资产清单的用户获得过滤、多选、计算与行列操作正在开发或使用搜索增强类插件的开发者可接入input-search事件。如需从源码层面核对本文结论可沿以下文件路径继续深入快捷键键位默认值constants.ts快捷键配置类型config.d.tscopyText第 1026 行、optimizeTypography第 1048 行快捷键触发与复制实现commonHotkey.ts、toolbar/util.tsinput-search事件派发util.ts属性视图多选列注册col.ts属性视图过滤实现与测试filter.go、filter_test.go列计算写路径attribute_view.gosetAttributeViewColumnCalc视图渲染 APIapi/av.go总体而言v2.9.6 延续了思源“高频小步快跑”的迭代节奏对普通用户而言是一次低风险的体验优化升级对属性视图用户和插件开发者而言则值得重点关注其中新落地的结构化数据操作能力与input-search事件接口。【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/9 22:15:35

Edge浏览器变干净指南:告别信息流弹窗,优化内存与性能

说 Edge 能变得很干净,很多人第一反应是不信。毕竟默认状态下的 Edge 实在有点“爱凑热闹”:打开新标签页就是整屏信息流,右下角偶尔冒出购物比价提示,侧边栏还总想给你塞点东西。但把设置项逐个翻一遍、把启动项和扩展列表清一遍…

2026/9/9 22:15:35

运动学模型与LQR路径跟踪:从原理推导到仿真调参实战

做自动驾驶横向控制这几年,我最大的体会是:很多人一上来就上动力学模型、上MPC,结果连最基本的运动学LQR都没调明白。不是说高级方法不好,而是运动学模型加LQR这套组合,在低速、结构化道路场景下,性价比高得…

2026/9/9 22:15:34

用Win32 API手写记事本:理解消息循环与文件编码的C++实践

简介:一份使用C编写的记事本程序完整源代码,面向有一定C语法基础、希望上手GUI编程的初学者,也适合需要参考桌面应用项目结构的开发者。项目基于MFC/WinAPI搭建,包含主对话框逻辑、关于窗口、菜单资源、图标文件等模块&#xff0c…

2026/9/9 23:15:50

Unity双相机实现表里世界:渲染、物理与逻辑实践

做游戏的人应该都吃过这类设计的亏:表面上看只是一个场景,实际上要准备两套地图、两套交互物、两套光影,甚至物理碰撞都可能分两套,然后让玩家在某个瞬间从日常世界跌进“里世界”。经典游戏里这个套路被玩出过很多花样&#xff0…

2026/9/9 23:15:50

嵌入式表驱动路由:用数据表替代if-else消息分发

我曾经接手过一台工业网关的维护任务,代码里有一段接近八百行的消息分发函数。函数体长什么样呢?一个巨型的switch-case,每个case里先判断设备类型、再判断功能码、再判断通道号,然后调用对应的处理函数。新加一种设备协议&#x…

2026/9/9 23:15:50

10分钟打造完全可定制的Windows桌面环境

10分钟打造完全可定制的Windows桌面环境 【免费下载链接】Seelen-UI The Fully Customizable Desktop Environment for Windows 10/11. 项目地址: https://gitcode.com/GitHub_Trending/se/Seelen-UI 打开电脑,先被满屏窗口挡住视线?还是想换个桌…

2026/9/9 23:10:49

图片无损放大哪个方法好?四个实用方法来帮你

在日常工作和学习生活中,相信很多人都遇到过这样的尴尬场景:好不容易找到一张满意的素材图,结果分辨率过低,一放大就全是马赛克。无论是做PPT汇报、设计海报,还是处理老旧照片,怎么把图片放大四倍保持清晰度…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 7:15:15

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/9 0:00:48

MHS模型硬件标准:让大模型像调用软件一样控制物理设备

让Claude真正看着显微镜说“这个细胞形态不太对”,或者让大模型自己调一版机械臂的运动轨迹,这事儿听上去已经很接近科幻片了。但你真上手试一次就会发现,模型不缺智商,缺的是一个能插进显微镜、机械臂、激光控制器里的“通用插座…

2026/9/9 0:00:48

AI五大核心方向详解:从机器学习到大模型,零基础转行选哪条?

会有人告诉我,他想转行学AI,但打开招聘网站一看直接傻眼:机器学习、深度学习、自然语言处理、计算机视觉、大模型应用……满屏都是这些词,好像每个都会一点,又好像每个都离自己很远。还有人上来就问“学Python还是学Ja…

2026/9/9 0:00:49

从50行最小循环到生产级AI引擎:工程化改造全解析

直接说干货。这一章我写的不是那种"hello world跑通某个模型"的教程,而是把AI引擎当做一个真正要上线、要被人调用、要扛流量的系统来聊。从最初只有50行的最小循环,到能够承载生产流量的AI引擎,中间差的不是代码量,而是…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/7 22:46:00

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码