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

如何在VSCode中获取打开编辑器列表或无弹窗切换至前一个使用的编辑器?

实现VSCode无弹窗切换最近使用编辑器及获取编辑器列表

一、无弹窗切换至最近使用的前一个编辑器

VSCode官方未直接暴露Ctrl+Tab依赖的MRU(最近使用)列表接口,但可以通过监听编辑器激活事件自行维护MRU栈,实现类似Emacs的缓冲区切换逻辑:

  1. 维护MRU编辑器栈
    初始化数组存储最近使用的编辑器,每次激活新编辑器时,将其从数组中移除(避免重复)并插入到栈顶。
  2. 注册切换命令
    触发命令时,直接切换到栈中第二个元素(栈顶为当前激活编辑器)。

核心实现代码(TypeScript):

import * as vscode from 'vscode';

let mruEditors: vscode.TextEditor[] = [];

export function activate(context: vscode.ExtensionContext) {
    // 监听编辑器激活事件,更新MRU列表
    const editorChangeDisposable = vscode.window.onDidChangeActiveTextEditor(editor => {
        if (!editor) return;
        // 移除已存在的编辑器实例,防止重复
        const existingIndex = mruEditors.findIndex(e => e.document.uri.toString() === editor.document.uri.toString());
        if (existingIndex !== -1) {
            mruEditors.splice(existingIndex, 1);
        }
        // 将当前编辑器放到栈顶
        mruEditors.unshift(editor);
    });

    // 注册自定义切换命令
    const switchCommand = vscode.commands.registerCommand('extension.switchToLastUsedEditor', () => {
        if (mruEditors.length < 2) {
            vscode.window.showInformationMessage('无可用的历史编辑器');
            return;
        }
        // 切换到上一个使用的编辑器
        vscode.window.showTextEditor(mruEditors[1]);
    });

    context.subscriptions.push(editorChangeDisposable, switchCommand);
}

完成后,在package.json中配置命令的快捷键,即可通过快捷键直接触发无弹窗切换。

二、获取VSCode已打开的编辑器列表

VSCode提供了两个API用于获取编辑器/文档列表:

  • 获取可见编辑器:vscode.window.visibleTextEditors,返回当前窗口中可见的编辑器(如分栏、标签页中显示的)。
  • 获取所有已打开文档:vscode.workspace.textDocuments,返回所有已打开的文档(每个文档对应至少一个编辑器,若同一文档多开会重复出现)。

示例代码:

// 获取当前可见的编辑器
const visibleEditors = vscode.window.visibleTextEditors;
console.log('可见编辑器数量:', visibleEditors.length);

// 获取所有已打开的文档(对应编辑器)
const allOpenedDocs = vscode.workspace.textDocuments;
console.log('已打开文档总数:', allOpenedDocs.length);

// 去重统计唯一打开的文档
const uniqueDocUris = new Set(allOpenedDocs.map(doc => doc.uri.toString()));
console.log('唯一打开文档数量:', uniqueDocUris.size);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:17:11