在Linux上,如何使用命令行工具(CLI)或通过代码获取我最近在VS Code中打开的文件、文件夹和工作区?

编程语言 2026-07-10

解决方案

我在Windows机器上使用PowerToys Run,它提供VS Code最近工作区(包括文件夹)的搜索结果。目前我在笔记本上使用Arch Linux搭配Hyprland,也想在Linux上以某种方式获得同样的体验,方法可以是:在shell脚本中调用一些CLI工具并在一个类似dmenu的启动器中运行它们(如rofi),或者在名为 zlaunch 的启动器中用Rust编写一些代码。不过我该如何实现呢?如何获取最近打开的工作区/文件/文件夹的列表?

对于CLI,你可以做类似如下的做法:sqlite3 $HOME/.config/Code/User/globalStorage/state.vscdb "select value from ItemTable where key='history.recentlyOpenedPathsList';" | jq .entries。数组中对象的键名将取决于打开内容的类型,可能是 folderUrifileUri

据我所知,这个数据库被认为是内部实现细节。我不知道是否有面向用户的相关文档。因此,一方面我不会指望它会很稳定。它们可能会改变模式或改成完全不同的东西。另一方面,从实际角度来看,这样做应该是可行的(我想我刚才已经自相矛盾了 :P)。如果它确实“坏了”(即发生变化),你很可能会注意到。

我之所以知道这个文件的唯一原因,是因为在其他Stack Overflow的问答中看到过它被提及,我之所以阅读那些问答,是因为我在这里回答关于VS Code的问题。因此我也查看过这些文件。还因为这里的另一个回答提醒了我这件事,这也对我有帮助。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章