You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code中创建快捷方式批量打开文件并保持打开状态

解决方案

一、修改宏代码,强制非预览模式打开文件

问题核心在于vscode.window.showTextDocument默认以预览模式打开文件,后续打开的文件会替换前一个预览标签。通过传递preview: false参数可让文件直接以常驻标签打开,同时需处理异步操作避免执行顺序混乱。

修改后的完整代码:

const vscode = require('vscode');

module.exports.macroCommands = {
   OpenFrequentFiles: {
      no: 1,
      func: () => openFrequentFiles()
   },
};

// 改为异步函数,确保文件逐个完成打开操作
async function openFrequentFiles() {
    const workspaceDir = "/full/path/to/my/workspace";
    const frequentFilepaths = [
        "path/to/file1",
        "path/to/file2",
        // ... 补充其他文件路径
        "path/to/file20",
    ];

    for (const relativePath of frequentFilepaths) {
        const fullFilepath = `${workspaceDir}/${relativePath}`;
        await openFile(fullFilepath);
    }
}

async function openFile(filename) {
    try {
        const document = await vscode.workspace.openTextDocument(filename);
        // 传递preview: false参数,强制创建常驻编辑器标签
        await vscode.window.showTextDocument(document, { preview: false });
    } catch (err) {
        console.error(`打开文件失败:${filename}`, err);
        vscode.window.showErrorMessage(`无法打开文件:${filename}`);
    }
}

关键修改说明:

  • 将openFrequentFiles和openFile改为异步函数,用await等待每个文件打开完成,避免并发操作导致的预览标签被覆盖
  • 调用showTextDocument时添加{ preview: false }选项,直接生成常驻标签,不会被后续打开的文件替换

二、备选方案:用符号链接集中管理文件(不破坏原结构)

如果不想编写宏,可以在项目内创建一个专门的文件夹(比如frequently-used),给每个目标文件创建符号链接到该文件夹,实现集中访问且不改变原文件位置:

  • Windows(需管理员权限):执行mklink "frequently-used\file1" "..\path\to\file1"
  • macOS/Linux:执行ln -s "../path/to/file1" frequently-used/file1

之后只需一次性打开frequently-used文件夹下的所有文件即可,完全不影响原有项目结构。

三、补充技巧:打开后手动保留预览文件

若偶尔需要保留预览状态的文件,可在打开后执行workbench.action.keepEditor命令,同样需配合异步操作:

async function openFile(filename) {
    const document = await vscode.workspace.openTextDocument(filename);
    await vscode.window.showTextDocument(document);
    // 打开后执行保留编辑器命令
    await vscode.commands.executeCommand('workbench.action.keepEditor');
}

不过这种方式效率不如直接设置preview: false,需多一步命令执行。

内容的提问来源于stack exchange,提问作者domgunewardena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 03:35:04