Obsidian 插件:Slash Menu——写作时输入 / 就好

Obsidian 插件:Slash Menu——写作时输入 / 就好

2026年8月15日·#技术分享Obsidian/插件/效率工具/写作·1061 字 5 分钟
浏览量加载中...
AI 摘要

一个写作向的 Obsidian 斜杠命令插件:输入 / 或 、 弹出命令卡片,插入标题、表格、代码块、Callout,支持拼音搜索,代码块内自动屏蔽,心流不断。

现在我在 Obsidian 里写文章,想插个表格就敲 /table,想插标题就敲 /h2,手从头到尾不用离开键盘。

前言#

写文章的时候最烦什么?对我来说是打断心流

正写到一半,要插一个标题、一个表格、一段代码块,就得停下来动鼠标、找工具栏、点按钮、选格式……再回来,思路已经飘了。

其实很多编辑器早就解决了这个问题:思源笔记、Notion 都有「斜杠命令」——输入 /,弹出一个菜单,直接选。Obsidian 原生没有这个功能,于是我自己写了一个——Slash Menu

它做了什么#

一句话:在 Obsidian 里输入 /(中文输入法下按同一个键打出的是 ,也能触发),弹出可搜索的命令卡片,回车即插入

20 个命令,分三组:

分组命令
标题H1 ~ H6
表格(3×2)、代码块、引用、Callout、无序列表、有序列表、任务列表、分割线
内联格式链接、图片、加粗、斜体、行内代码、删除线

插入后光标会自动落在最该输入的地方:表格在第一格,代码块在中间空行,链接在 URL 处(粘贴即用),加粗在 ** 中间。不用再手动挪光标。

细节决定体验#

1. 拼音都能搜#

菜单实时过滤,搜索词覆盖了中文、英文、拼音全拼和首字母缩写——这是从思源笔记学的:

  • h2二级标题erjibiaotiejbt,都能找到二级标题

中文输入法打拼音的人(比如我)用缩写找命令是真的快。

2. 该安静的时候绝不打扰#

代码块、行内代码里输入 / 不会触发菜单——写代码的时候不会被弹窗打断,这是用 CodeMirror 6 语法树判断的,不是简单看行首有没有三个反引号。

3. 行内任意位置可唤起#

不用特意回行首:当前行最后一个词是 /xxx 就能唤起,行中已有文字不会误触。Esc、左右方向键、删光触发词都会自动关闭菜单,不会赖着不走。

4. 标题替换不叠前缀#

## 旧标题 这一行选「标题 1」,会直接变成 # 旧标题,而不是叠出 ## # 旧标题 这种怪东西。

安装#

目前是个人维护的小工具,还没上 Obsidian 社区插件市场,手动装也就三步:

  1. GitHub 仓库 获取 main.jsmanifest.jsonstyles.css
  2. 拷贝到库目录 .obsidian/plugins/slash-menu/
  3. 重启 Obsidian(或「重新加载应用」),在「设置 → 第三方插件」里启用

开发背后的故事#

这个插件的灵感来自思源笔记的斜杠菜单。看了思源的源码,它用的是自己画的浮层:keydown 监听 / 键、手写绝对定位、自己做上下键导航、还要专门处理中文输入法的组合态(Process/229)……光「什么时候关闭」就有一堆边角情况。

给 Obsidian 做的时候,我换了一条更稳的路:用官方 EditorSuggest API 当骨架——浮层跟随光标、上下键选择、回车确认、Esc 关闭全部由 Obsidian 内置,我只需要实现「触发检测、过滤、渲染、插入」四件事,出 bug 的面一下子就小了很多。

代码层面值得一提的:

  • 纯逻辑层(触发检测、过滤、插入模板)和 Obsidian API 完全解耦,27 个单元测试,跑测试不需要 Obsidian
  • 插入模板统一用 NUL 字符标记光标落点,20 个命令共用一个「插入 + 定位」执行器,没有为每个命令各写一套插入代码
  • 插入执行全程 try-catch,出问题会弹提示而不是静默失败

开发中还修过一个隐蔽 bug:构建脚本的拷贝列表漏了 styles.css,功能全正常但样式不生效——「看着能跑、用着别扭」的那种问题。所以现在构建拷贝清单和验收清单都写进了仓库的开发规范里。

最后#

仓库地址:github.com/tianshihao2003/obsidian-slash-menu

如果你也烦「写个字还要动鼠标」,欢迎试试,也欢迎提 issue 反馈想法。

毕竟,写文章的时间应该花在内容上,而不是花在找按钮上

评论区

[ 标签 ]
# AI5# AI 编程2# AI工具1# Ajax2# Apifox1# AstrBot2# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# CloudFlare2# Cloudflare1# CloudFlare-ImgBed1# coc3# CSS6# DeepSeek2# deepseek2# DELETE1# Docker1# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML6# HTTP2# Java23# java13# JavaScript5# JDBC3# JSON1# JUnit1# Logback1# Maven6# Mybatis1# MyBatis4# MySQL6# MySql1# NapCat1# Obsidian3# OpenCode3# ORM1# PathVariable1# PicGo1# py2# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot11# SQL2# Svelte2# TailwindCSS1# Telegram2# Tlias2# Vercel1# Vue7# Waline3# WebDAV1# Web基础6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档9# 写作1# 刷步数1# 前端32# 动态1# 动漫1# 单词2# 博客6# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 图床4# 地图1# 备份1# 奇思妙想1# 存储1# 学习方法1# 宝塔面板3# 宝宝9# 导航栏1# 工具2# 开发1# 开发规范1# 开心1# 影视1# 微信1# 性能优化2# 总结1# 想法8# 感悟9# 指南1# 插件3# 故障排除1# 效率工具2# 教程7# 数据库10# 斩神1# 日常61# 日志框架1# 朋友圈1# 朱元璋1# 模板1# 测试1# 游戏1# 生活迁移1# 电影2# 碎碎念1# 视觉识别1# 网络教室1# 羊毛1# 脚本1# 脚本工具1# 自动化2# 蓝奏云1# 订阅推荐1# 记录1# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载1# 运动1# 部落冲突1# 配置1# 随机图1# 音乐3# 音标1# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]
工具