wondermax1 downloadsEnhanced tab management: control where new tabs open, tab navigator with search/history, and parent-relative positioning.
Enhanced tab management for Obsidian: control where new tabs open, navigate tabs with a keyboard-driven navigator, and colorize parent-child tab relationships.
Tab Settings Enhanced 是一款 Obsidian 标签管理增强插件,提供精细化的新标签打开位置控制、关闭后激活策略、防重复标签、父子标签颜色标记,以及一个键盘驱动的「标签导航器」模态框(序列快捷键切换 + 搜索 + 历史恢复)。
通过 patch workspace.openLinkText,拦截所有文件打开行为,按你的偏好放置新标签。
| 选项 | 说明 |
|---|---|
after-parent |
父标签右侧(默认) |
before-parent |
父标签左侧 |
first |
标签栏第一个位置 |
last |
标签栏最后一个位置 |
after-pinned |
固定标签之后 |
关闭当前标签时,自动激活哪个标签。
| 选项 | 说明 |
|---|---|
parent |
父标签(默认) |
left |
左侧标签 |
right |
右侧标签 |
recent |
最近使用的标签 |
firstTab |
第一个标签 |
lastTab |
最后一个标签 |
默认在新标签打开 (openInNewTab):所有链接点击默认在新标签打开。
快速切换器默认新标签打开 (openQuickSwitchInNewTab):通过 Ctrl+O 快速切换器打开文件时,独立控制是否新标签打开,与上面的开关解耦。
| 场景 | openInNewTab | openQuickSwitchInNewTab | 结果 |
|---|---|---|---|
| 链接点击 | false | false | 当前标签打开 |
| 链接点击 | true | false | 新标签打开 |
| 快速切换器 | false | true | 新标签打开 |
| 快速切换器 | true | * | 新标签打开 |
防止重复标签 (deduplicateTabs):打开已存在的文件时,自动切换到已有标签,而非新开一个。
面板链接默认新标签打开 (openPanelLinkInNewTab):在 书签 / 搜索 / 文件列表 / 入链(Backlinks) / 出链(Outgoing Links) 面板中点击文件链接时,默认在新标签打开。默认关闭(保持 Obsidian 原生单击行为)。
为父子标签分配同色系,让标签层级关系一目了然。
colorPalette):内置 7 套配色colorOpacity):0 ~ 1,默认 0.3一个键盘驱动的标签切换模态框,集字母快捷切换、名称搜索、快捷关闭、历史恢复于一体。
默认快捷键:Alt + T(可在 设置 → 快捷键 中自定义)
┌─────────────────────────────────────────────┐
│ 🔍 搜索标签... │ ← 输入框(自动聚焦)
├─────────────────────────────────────────────┤
│ 📂 打开的标签 │
│ [a] 📄 笔记标题1 [×] │ ← 字母键 + 标题 + 关闭按钮
│ [s] 📄 笔记标题2 [×] │
├─────────────────────────────────────────────┤
│ 🕒 最近关闭 │
│ [k] 📄 已关闭的笔记1 ↩ │ ← 字母键 + 标题 + 恢复按钮
└─────────────────────────────────────────────┘
点按 Alt 进入打开模式 | 点按 Ctrl 进入关闭模式 | ↑↓ 选择 | Enter 确认 | ESC 退出
| 按键 | 行为 |
|---|---|
点按 Alt 后松开 |
进入「打开模式」(底部提示条高亮 ▶ 打开模式) |
点按 Ctrl 后松开 |
进入「关闭模式」(底部提示条高亮 ✕ 关闭模式) |
模式下按 a ~ z |
打开 / 关闭对应字母的标签 |
Esc |
取消当前模式(不关闭模态框);无模式时关闭模态框 |
↑ / ↓ |
上下移动选中项 |
Enter |
激活/恢复当前选中项 |
| 任意可输入字符 | 无模式下输入到搜索框,实时过滤 |
Alt/Ctrl 进入打开/关闭模式,再按字母执行。采用「点按检测」而非组合键——Alt+A、Ctrl+C 等组合键原样放行,不会劫持系统或全局快捷键;进入模式后焦点自动移出搜索框,拼音输入法下无需切换输入法,字母键直达执行。通过命令面板或自定义快捷键快速切换标签。所有快捷键均可在 设置 → 快捷键 中修改。
| 快捷键 | 功能 |
|---|---|
Alt+1 ~ Alt+8 |
跳转到第 1~8 个标签 |
Alt+9 |
跳转到最后一个标签 |
Alt+← / Alt+→ |
上一个 / 下一个标签(循环) |
编号顺序按 固定标签在前、普通标签在后 排列(各自保持标签栏原有相对顺序)。
Ctrl+Alt+←/→ 完全一致、且随工作区持久化。[←]3 [→]1,0 也显示),数据直接读自 leaf.history。需开启 设置 → 外观 → 显示标签标题栏。app:go-back / app:go-forward 命令)。enableMouseSideNav)、显示历史计数 (historyShowCount)。◀N ▶M 历史计数。enableFocusMode,默认开):关闭后命令与右键菜单项均不可用。enableFocusLock):控制状态栏是否显示焦点锁定切换按钮。focusLockOn):直接控制锁定开/关,与状态栏图标双向联动(改任一处,另一处同步)。locate-fixed(定位已固定),未锁定 = locate-off;锁定态高亮强调色,未锁定态半透明。data.json 持久化保存,重启后保持。ESC、再次执行命令、或再次点击羽毛笔图标。ESC 退出提示。enableZenMode,默认开):关闭后命令/羽毛笔图标/右键菜单均不可用(若在禅模式中则自动退出)。内置中文 / 英文双语,并支持自动跟随 Obsidian 界面语言。
| 选项 | 说明 |
|---|---|
auto |
跟随 Obsidian 界面语言(默认) |
en |
强制英文 |
zh |
强制中文 |
main.js 与 manifest.json(data.json 为插件运行时自动生成的用户数据,无需下载)。.obsidian/plugins/tab-settings-enhanced/本项目无构建流程,main.js 即插件本体(手写、未压缩、未混淆),克隆后可直接使用:
git clone https://github.com/wonderez/tab-settings-enhanced.git
将 main.js 与 manifest.json 复制(或软链接)到 <你的Vault>/.obsidian/plugins/tab-settings-enhanced/,在 Obsidian 中启用即可。修改代码后建议运行 node --check main.js 校验语法。
所有配置存储在 .obsidian/plugins/tab-settings-enhanced/data.json,亦可在 设置 → Tab Settings Enhanced 中可视化调整。
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
language |
string | "auto" |
界面语言 |
newTabPlacement |
string | "after-parent" |
新标签打开位置 |
closeTabActivation |
string | "parent" |
关闭标签后激活策略 |
openInNewTab |
boolean | true |
默认在新标签打开 |
openQuickSwitchInNewTab |
boolean | false |
快速切换器默认新标签打开 |
openPanelLinkInNewTab |
boolean | false |
书签/搜索/文件列表/入链/出链面板链接默认新标签打开 |
deduplicateTabs |
boolean | true |
防止重复标签 |
enableTabColors |
boolean | true |
启用标签颜色标记 |
colorPalette |
string | "morandi" |
配色方案 |
colorOpacity |
number | 0.3 |
颜色透明度 |
enableMouseSideNav |
boolean | true |
启用鼠标侧键标签导航历史(第4键后退/第5键前进) |
historyShowCount |
boolean | true |
在原生返回/前进按钮旁显示历史计数 |
enableAutoArchive |
boolean | false |
启用自动归档 |
autoArchiveTimeout |
number | 30 |
自动归档闲置超时(分钟) |
autoArchiveMaxHistory |
number | 100 |
归档历史上限 |
enableFocusMode |
boolean | true |
启用专注模式(关闭后命令/右键菜单不可用) |
enableFocusLock |
boolean | false |
在状态栏显示焦点锁定按钮 |
focusLockOn |
boolean | false |
焦点锁定开/关(与状态栏图标联动,持久化) |
enableZenMode |
boolean | true |
启用禅模式(关闭后命令/图标/右键菜单不可用) |
标签导航器的历史记录(
closedTabsHistory,最多 30 条)与归档区(archivedTabs)也会写入data.json持久化保存。
| 命令 | 默认快捷键 | 说明 |
|---|---|---|
| 打开标签导航器 / Open Tab Navigator | Alt + T |
呼出标签导航器模态框 |
| 跳转到标签 1 |
Alt + 1 ~ Alt + 8 |
跳转到第 N 个标签(固定在前排序) |
| 跳转到最后一个标签 / Jump to Last Tab | Alt + 9 |
跳转到最后一个标签 |
| 上一个 / 下一个标签 | Alt + ← / Alt + → |
在标签间循环切换 |
| 专注模式:关闭所有非固定标签 | —(可自定义) | 一键关闭所有非固定标签并归档(亦在标签页右键菜单) |
| 禅模式 / Zen Mode | —(可自定义) | 隐藏所有无关 UI,全屏专注写作(ESC 退出) |
所有快捷键均可在 设置 → 快捷键 中自定义。
patchOpenLink() 重写 workspace.openLinkText,根据 newTabPlacement 决定新标签插入位置,并通过 DOM 检测快速切换器模态框判断调用来源。patchLeafDetach() 重写 WorkspaceLeaf.prototype.detach,在标签关闭前记录历史,并按 closeTabActivation 策略激活下一个标签。TabNavigatorModal 继承自 obsidian.Modal,独立实现字母分配、搜索过滤、键盘事件处理。完整设计文档见
IMPLEMENTATION_PLAN.md。
register() 注册还原函数,插件卸载时自动恢复所有 patch,不污染 Obsidian 原生行为。tab-settings-enhanced/
├── manifest.json # Obsidian 插件清单
├── main.js # 插件主文件(可直接安装使用)
├── LICENSE # MIT 开源协议
├── IMPLEMENTATION_PLAN.md # 功能增强实现方案(设计文档)
└── README.md # 本文件
data.json(用户配置与历史记录)由插件运行时自动生成,含个人笔记路径,不纳入版本库。
tab-context-menu 事件不可靠,改为纯 DOM 注入方案——监听标签头 contextmenu,等原生菜单弹出后往 .menu 注入菜单项,稳定可用。禅模式项也加入右键菜单。enableFocusMode(专注模式)与 enableZenMode(禅模式),默认开启;关闭后对应命令/图标/右键菜单项均不可用,禅模式开关关闭时自动退出禅模式并隐藏羽毛笔图标。enableMouseSideNav)。[←]3 [→]1),0 也显示数字。ESC 退出。leaf.history(不再自建历史栈),计数/侧键与内置 Ctrl+Alt+←/→ 完全一致,且随工作区持久化。代码更简洁。locate-fixed/locate-off),锁定态高亮。openPanelLinkInNewTab:书签 / 搜索 / 文件列表 / 入链 / 出链面板点击文件链接时默认新标签打开(默认关闭)。Alt+1~9 跳转、Alt+←/→ 前后切换(固定标签在前排序)◀3 ▶1)、鼠标侧键支持、与标签导航器联动显示data.json)如果这个插件对你有帮助,欢迎在 GitHub 上点个 Star,或提交 Issue 反馈问题与建议。
本项目基于 MIT License 开源,Copyright (c) 2026 CTA System。