VS CODE 扩展 · 把编辑器当草稿本用

关掉标签,不再问你存哪儿

在无标题(Untitled)标签里敲下第一个字的那一刻,内容就已经被写成硬盘上的一个真文件了。 于是关标签时那个「是否保存 / 选择保存位置」的对话框,从此不再出现。 顺带还有:标题栏一颗新建文件按钮、Ctrl+L 格式化 JSON、在系统默认应用中打开当前文件、 以及侧边栏的常用目录与常用文件。

✍️ 输入即落盘 🚪 关标签零对话框 🗂️ 按天归档 📦 零依赖零构建 🧩 纯 JavaScript
当前版本 1.0.6 声明命令 12 条 运行时依赖 0 个 要求 VS Code ≥ 1.60.0
📥 这页没有下载按钮,是真的没有地方可下:它没有发布到 VS Code 应用市场, 这台服务器上也没有放它的安装包。要用就从源码自己打一个 .vsix, 两条命令的事,步骤都在下面这一节。

一眼看懂

At a glance

不想往下翻的话,这六条就是它全部的价值所在。

敲第一个字,文件就有了

插件盯着文档变化事件,只认无标题文档。它从「空」变成「有内容」的那一瞬间就落盘,不用你按 Ctrl+S,也不用先想好放哪儿。

关标签零对话框

它是先把内容写成真文件、再把无标题标签清空、然后才关掉它。关的时候这个标签已经没有未保存内容,编辑器自然不会问你要保存位置。

路径是固定的,按天归档

一律落在 ~/vscode项目/临时文件/年月/日/ 下,文件名就是当时的时分秒。想找上周三写的那段东西,按日期翻文件夹就行。

接着敲,手感不断

落盘后它会把新文件放回原来那一栏打开,并把光标移到文件末尾。体感上就是「同一个标签继续写」,只是标题从「无标题-1」变成了文件名。

顺手的几件小事

Ctrl+L 把当前文档格式化成 JSON、一键用系统默认应用打开当前文件、状态栏点一下就在终端 cd 到当前文件所在目录。

零依赖,零构建

纯 CommonJS 的 JavaScript,8 个 .js 文件。package.json 里既没有 dependencies 也没有 scripts——不用装依赖、不用编译、没有产物。

招牌功能:无标题标签自动落盘

Auto-save untitled

这一节把整个插件最值钱的那一件事从头讲一遍:原来烦在哪、它怎么解决、文件到底存到哪去了、会不会丢。

先说没有它的时候

很多人(包括这个插件的作者)把 VS Code 当纯文本编辑器用:临时贴一段日志、算一串 ID、抄个 token, 随手 Ctrl+N 开一个「无标题-1」,写完就想关掉。 但一按关闭,编辑器就弹一个对话框问你要不要保存 —— 选「保存」就得挑目录、起文件名,为一段两分钟就作废的东西认真命名; 选「不保存」内容当场消失,而这种草稿偏偏经常十分钟后还要回头看一眼。 久而久之只能靠「不敢关」来兜底,标签一路排到看不见标题。

每次都要挑目录 为草稿认真起名 不敢关 = 标签排满

它在你敲下第一个字之后做的六件事

触发条件很窄,所以不会误伤:只处理无标题文档,且只在它从空变成有内容的那一次触发。 已经保存过的文件、正常打开的项目文件,这个插件一概不碰。

按今天的日期把目录准备好,用时分秒当文件名
目录是 年月 / 日 两层,不存在就递归建出来;文件名取当前的时分秒,扩展名固定 .txt。
先把内容写成硬盘上的真文件
同步写入,这一行返回时内容已经在磁盘上了。写的是普通文本文件,不是编辑器的临时缓存。
把那个无标题标签清空
这一步才是「不弹框」的关键:内容已经安全地搬走了,此时把无标题文档整篇替换成空白, 它就变成了一个「没有未保存内容」的标签。
关掉它
因为上一步已经清空,这次关闭静默完成,编辑器不会再问「是否保存」。
把刚写好的那个文件打开,放回原来那一栏
原来在左边分栏就还在左边,而且是正式标签不是预览标签(不会被下一次点击顶掉)。
光标移到文件末尾,再存一次,提示一句
接着敲不会跳回开头;末尾再保存一次收尾,然后右下角提示 「文件已自动保存: 143052.txt」。整个过程你什么都不用点。

文件存到哪儿了?会不会丢?

路径规则(写死在代码里,没有设置项,也就没有「你以为改了其实没改」的问题):

~/vscode项目/临时文件/<年月>/<日>/<时分秒>.txt

举个例子,2026 年 8 月 6 日 14:30:52 落的盘就是:

~/vscode项目/临时文件/202608/06/143052.txt

这里的 ~ 优先取环境变量 HOME,没有再取 USERPROFILE—— 也就是 Windows 上的 C:\Users\你、macOS 上的 /Users/你。

🛡️ 会不会丢:不会。落的是硬盘上一个普通的 .txt,不是编辑器的临时缓存、也不是内存里的东西。 从第 02 步之后它就跟你手动新建的文件没有任何区别 —— 正常保存、版本管理、拿别的软件打开全都照常,把这个插件卸载掉也不会带走它们。
⚠️ 两个要知道的边界:①文件名只有时分秒,所以同一秒内落两次盘会写到同一个文件名上,后一次覆盖前一次; ②扩展名固定是 .txt,写的是 JSON 还是代码它都不管(想要高亮就按 Ctrl+L,见下面「顺手的小功能」, 或者存完自己另存一次)。写盘失败会明确弹出「保存失败: …」,不会假装成功。

其余功能,一条一条来

Features

下面每一条都是仓库里已经写好、每天在用的功能,没有「即将支持」。 本页没有截图(确实没有这个插件的实拍素材),所以直接把能力逐条写清楚,不占图位、也不放占位框。

临时编辑

4 项
无标题文档自动落盘(核心)
触发点是文档内容变化事件,且只认无标题文档——已经保存过的文件、项目里的文件一概不碰, 它不会在你正经写代码的时候插一脚。完整流程见上面那六步。
触发得很克制:只在「从空到有」那一次
每个无标题标签的「空 / 非空」状态单独记在内存里,标签一关就清掉。 所以不是你每敲一个字就写一次盘,而是这个标签第一次有内容时落一次; 之后的编辑就是普通文件的编辑了。反过来,把内容全删光再重新输入,会再落一次新盘—— 因为它又经历了一次「从空到有」。
编辑器标题栏的「新建文件」按钮
在编辑器标题栏右上角挂一颗新建文件图标,点一下就开一个新的无标题标签(走的是编辑器自带的新建命令)。 为什么需要它:标签排满之后,标签栏已经没有空白可以双击了,这颗按钮的位置永远在。
也可以手动来一次
命令面板里有一条「编辑器自动创建文件」:当前是无标题文档就走上面那套落盘流程; 当前是已保存的文件就正常保存并提示文件名;一个编辑器都没开时提示「没有打开的编辑器」,不会静默什么都不做。

顺手的小功能

4 项
格式化 JSON:Ctrl+L
光标在编辑器里时按 Ctrl+L,状态栏右侧也常驻一颗「格式化 JSON」按钮,点它等价。 统一缩进 2 个空格;格式化成功后顺手把这份文档的语言设成 JSON,于是立刻就有了语法高亮—— 对刚落盘、扩展名还是 .txt 的临时文件尤其有用。 文档是空的会提示「文档为空」,解析不了会弹出具体的解析错误,不是一句「失败了」。
对付「不太标准的 JSON」有四级回退
不是一次解析失败就报错了事,而是依次试四种: ①整段本来就是 JSON,直接解析(失败就先把 \" 这类转义还原再试一次); ②整段是被一对引号包起来的 JSON 字符串(接口日志里最常见),连解两层; ③从一堆无关文本里用括号配对抠出第一段完整的 JSON 再解析; ④还不行就按最外层的逗号切开、逐行缩进(字符串里面的逗号不切),至少让它变得能看。
在系统默认应用中打开
状态栏右侧的「在默认应用中打开」:把当前文件交给操作系统,用它默认关联的程序打开。 .html 进浏览器、.png 进看图工具,不用先去访达 / 资源管理器里找一遍。
状态栏左边那颗:一键 cd 到当前目录
状态栏最左边常驻一颗按钮,上面写着当前文件所在的目录名(切换编辑器、保存文件时自动跟着变)。 点一下就在当前终端里 cd 过去;一个终端都没开的话,它会新建一个叫「文件目录」的终端。 悬停能看到完整路径。

侧边栏:常用目录 / 常用文件

4 项
活动栏里一个「史锦泽插件」
最左侧活动栏多出一个图标,里面是两棵树:常用目录与常用文件。 点目录 = 在当前窗口打开这个文件夹(不新开窗口);点文件 = 直接打开成一个编辑器标签。 每一行的说明文字就是它的完整路径,悬停还会提示「右键可删除或重命名」。
第一行永远是「+ 添加」
两棵树的第一行固定是 「+ 添加常用目录」/「+ 添加常用文件」,一个都没加时也在,不会出现一片空白让人不知道从哪下手。 点它弹系统的选择框(选目录的那棵只让选目录,选文件的那棵只让选文件),选完直接用目录名 / 文件名当显示名,不再二次追问。 同一个路径加第二次会被拦下并提示「该目录已存在」。
行内重命名 / 删除
悬停到某一行,右侧出现重命名与删除两个图标。 重命名只改这里显示的名字,不动磁盘上的真文件(可以把一长串路径的项目改成「公司后台」); 删除会先弹「确定 / 取消」确认,也只是把它从列表里去掉。
数据就一个 JSON 文件
两棵树共用 ~/vscode项目/插件数据/vscode.json,结构是 { folders: [...], files: [...] },每条只有 name 和 path—— 换台电脑拷过去就行。早期版本存的是一个纯数组,读到那种老格式会自动当成「常用目录」,不用手工迁移。 列表里的路径如果已经被删掉了,点它会提示「目录不存在 / 文件不存在」,不会卡住。

工程与运行

4 项
编辑器启动完就激活
激活时机是「启动完成」,不用先打开某种文件才生效——这是必须的:核心功能盯的是无标题文档, 而无标题文档没有扩展名,靠语言 / 文件类型触发根本等不到它。 代价是每次启动会看到一句「自动保存插件已激活」的提示。
零依赖、零构建步骤
纯 CommonJS 的 JavaScript:没有 TypeScript、没有打包、没有编译产物, package.json 里既没有 dependencies 也没有 scripts,入口直接指向 main.js。 克隆下来不用 npm install,改完代码按 F5 起一个扩展开发宿主就能试。
8 个文件,一个文件管一件事
main.js 只负责装配与两颗状态栏按钮;src/ 里七个模块各司其职: 命令注册、事件监听、落盘、内存状态、路径与文件名、状态栏终端按钮、两棵侧边栏树。 想改「文件存到哪」只用动路径那一个文件,不用在几百行里翻。
它是为一种特定用法写的
作者在仓库 README 里把话说得很直白:他主要把 VS Code 当纯文本编辑器用—— 当临时编辑器和系统的默认文本编辑器,不拿它做项目。 所以这里每一条功能都是围绕「用完就关的草稿」设计的,不是一个通用的自动保存方案。 许可证 MIT。

怎么装

Install

先自己打一个 .vsix,再用两种装法之一装进去。全程两三条命令。

VS Code 1.60.0+ macOS · Windows · Linux
进到插件目录
它在这个仓库的 shijinze-autoNewFile-vscodePlugin/ 下。 cd shijinze-autoNewFile-vscodePlugin
打包成 .vsix
用官方打包工具 vsce(没装过就先 npm i -g @vscode/vsce): vsce package 产物名 = package.json 里的 name + version,也就是: shijinze-autoNewFile-1.0.6.vsix 不用先 npm install——这个插件没有任何运行时依赖。
某些版本的 vsce 还会提示没有 LICENSE 文件并问一句 Do you want to continue? [y/N]——按 y 继续即可, 许可证是 MIT(写在插件的 package.json 与 README 里)。
装进 VS Code(两种装法,任选一种)
装法一 · 图形界面:打开扩展视图(Ctrl+Shift+X,macOS 是 ⇧⌘X)→ 点右上角的 ... → 选「从 VSIX 安装...」 → 挑上一步那个文件。
装法二 · 命令行: code --install-extension shijinze-autoNewFile-1.0.6.vsix 两种都装完按提示重载一次窗口,看到「自动保存插件已激活」就是好了。
验一下
Ctrl+N 开一个无标题标签,随便敲一个字 —— 右下角应该立刻提示 「文件已自动保存: 时分秒.txt」,标签标题也从「无标题-1」变成了那个文件名。 这时候直接关标签,不会再弹任何对话框。
🧩 VS Code ≥ 1.60.0 📦 运行时依赖 0 个 🛠️ 无需构建 ⌨️ 声明命令 12 条 ⌘ 快捷键 1 条(Ctrl+L) 📊 状态栏按钮 3 颗 🗂️ 侧边栏视图 2 个 📄 MIT 许可证
🛒 为什么不能直接在应用市场里搜:它没有发布到 VS Code Marketplace, 所以 ext install 那套是搜不到的,只有上面这条自己打包的路。 这台服务器上也没有放它的安装包 —— 页面上不会给你一个点了 404 的下载按钮。
🧪 只是想改改试试:不用打包也不用安装 —— 用 VS Code 打开这个目录直接按 F5, 会另起一个「扩展开发宿主」窗口,插件在那个窗口里生效,改完重启调试即可。