敲第一个字,文件就有了
插件盯着文档变化事件,只认无标题文档。它从「空」变成「有内容」的那一瞬间就落盘,不用你按 Ctrl+S,也不用先想好放哪儿。
在无标题(Untitled)标签里敲下第一个字的那一刻,内容就已经被写成硬盘上的一个真文件了。 于是关标签时那个「是否保存 / 选择保存位置」的对话框,从此不再出现。 顺带还有:标题栏一颗新建文件按钮、Ctrl+L 格式化 JSON、在系统默认应用中打开当前文件、 以及侧边栏的常用目录与常用文件。
不想往下翻的话,这六条就是它全部的价值所在。
插件盯着文档变化事件,只认无标题文档。它从「空」变成「有内容」的那一瞬间就落盘,不用你按 Ctrl+S,也不用先想好放哪儿。
它是先把内容写成真文件、再把无标题标签清空、然后才关掉它。关的时候这个标签已经没有未保存内容,编辑器自然不会问你要保存位置。
一律落在 ~/vscode项目/临时文件/年月/日/ 下,文件名就是当时的时分秒。想找上周三写的那段东西,按日期翻文件夹就行。
落盘后它会把新文件放回原来那一栏打开,并把光标移到文件末尾。体感上就是「同一个标签继续写」,只是标题从「无标题-1」变成了文件名。
Ctrl+L 把当前文档格式化成 JSON、一键用系统默认应用打开当前文件、状态栏点一下就在终端 cd 到当前文件所在目录。
纯 CommonJS 的 JavaScript,8 个 .js 文件。package.json 里既没有 dependencies 也没有 scripts——不用装依赖、不用编译、没有产物。
这一节把整个插件最值钱的那一件事从头讲一遍:原来烦在哪、它怎么解决、文件到底存到哪去了、会不会丢。
很多人(包括这个插件的作者)把 VS Code 当纯文本编辑器用:临时贴一段日志、算一串 ID、抄个 token,
随手 Ctrl+N 开一个「无标题-1」,写完就想关掉。
但一按关闭,编辑器就弹一个对话框问你要不要保存 ——
选「保存」就得挑目录、起文件名,为一段两分钟就作废的东西认真命名;
选「不保存」内容当场消失,而这种草稿偏偏经常十分钟后还要回头看一眼。
久而久之只能靠「不敢关」来兜底,标签一路排到看不见标题。
触发条件很窄,所以不会误伤:只处理无标题文档,且只在它从空变成有内容的那一次触发。 已经保存过的文件、正常打开的项目文件,这个插件一概不碰。
.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,见下面「顺手的小功能」,
或者存完自己另存一次)。写盘失败会明确弹出「保存失败: …」,不会假装成功。
下面每一条都是仓库里已经写好、每天在用的功能,没有「即将支持」。 本页没有截图(确实没有这个插件的实拍素材),所以直接把能力逐条写清楚,不占图位、也不放占位框。
Ctrl+LCtrl+L,状态栏右侧也常驻一颗「格式化 JSON」按钮,点它等价。
统一缩进 2 个空格;格式化成功后顺手把这份文档的语言设成 JSON,于是立刻就有了语法高亮——
对刚落盘、扩展名还是 .txt 的临时文件尤其有用。
文档是空的会提示「文档为空」,解析不了会弹出具体的解析错误,不是一句「失败了」。
\" 这类转义还原再试一次);
②整段是被一对引号包起来的 JSON 字符串(接口日志里最常见),连解两层;
③从一堆无关文本里用括号配对抠出第一段完整的 JSON 再解析;
④还不行就按最外层的逗号切开、逐行缩进(字符串里面的逗号不切),至少让它变得能看。
.html 进浏览器、.png 进看图工具,不用先去访达 / 资源管理器里找一遍。
cd 到当前目录cd 过去;一个终端都没开的话,它会新建一个叫「文件目录」的终端。
悬停能看到完整路径。
~/vscode项目/插件数据/vscode.json,结构是
{ folders: [...], files: [...] },每条只有 name 和 path——
换台电脑拷过去就行。早期版本存的是一个纯数组,读到那种老格式会自动当成「常用目录」,不用手工迁移。
列表里的路径如果已经被删掉了,点它会提示「目录不存在 / 文件不存在」,不会卡住。
package.json 里既没有 dependencies 也没有 scripts,入口直接指向 main.js。
克隆下来不用 npm install,改完代码按 F5 起一个扩展开发宿主就能试。
main.js 只负责装配与两颗状态栏按钮;src/ 里七个模块各司其职:
命令注册、事件监听、落盘、内存状态、路径与文件名、状态栏终端按钮、两棵侧边栏树。
想改「文件存到哪」只用动路径那一个文件,不用在几百行里翻。
先自己打一个 .vsix,再用两种装法之一装进去。全程两三条命令。
shijinze-autoNewFile-vscodePlugin/ 下。
cd shijinze-autoNewFile-vscodePlugin
npm i -g @vscode/vsce):
vsce package
产物名 = package.json 里的 name + version,也就是:
shijinze-autoNewFile-1.0.6.vsix
不用先 npm install——这个插件没有任何运行时依赖。Do you want to continue? [y/N]——按 y 继续即可,
许可证是 MIT(写在插件的 package.json 与 README 里)。
Ctrl+Shift+X,macOS 是 ⇧⌘X)→
点右上角的 ... → 选「从 VSIX 安装...」 → 挑上一步那个文件。code --install-extension shijinze-autoNewFile-1.0.6.vsix
两种都装完按提示重载一次窗口,看到「自动保存插件已激活」就是好了。
Ctrl+N 开一个无标题标签,随便敲一个字 —— 右下角应该立刻提示
「文件已自动保存: 时分秒.txt」,标签标题也从「无标题-1」变成了那个文件名。
这时候直接关标签,不会再弹任何对话框。
ext install 那套是搜不到的,只有上面这条自己打包的路。
这台服务器上也没有放它的安装包 —— 页面上不会给你一个点了 404 的下载按钮。
F5,
会另起一个「扩展开发宿主」窗口,插件在那个窗口里生效,改完重启调试即可。