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

如何通过VSCode扩展API获取活动终端中选中的文本

获取VSCode终端中选中的文本内容

VSCode API并未直接提供获取终端选中文本的方法,但可以通过触发内置复制命令+读取剪贴板的方式间接实现,以下是具体方案:

实现思路

终端选中的文本可通过VSCode内置的workbench.action.terminal.copySelection命令复制到剪贴板,再通过vscode.env.clipboard.readText()读取剪贴板内容,从而获取选中的文本。

代码示例

import * as vscode from 'vscode';

async function getTerminalSelectedText(): Promise<string | undefined> {
    const activeTerminal = vscode.window.activeTerminal;
    if (!activeTerminal) {
        return undefined;
    }

    // 触发终端选中内容复制命令
    await vscode.commands.executeCommand('workbench.action.terminal.copySelection');
    
    // 读取剪贴板中的选中文本
    const selectedText = await vscode.env.clipboard.readText();
    return selectedText;
}

// 调用示例
getTerminalSelectedText().then(selectedText => {
    if (selectedText) {
        console.log('终端选中文本:', selectedText);
    } else {
        console.log('未激活终端或无选中内容');
    }
});

注意事项

  • 该方案依赖VSCode默认的终端复制行为,若用户修改了workbench.action.terminal.copySelection的绑定或禁用了复制功能,可能无法正常工作。
  • 如果终端无选中内容,readText()会返回剪贴板的历史内容,建议在调用前提示用户确保终端内有选中的文本。
  • 跨平台兼容:该方法无需依赖系统特定命令,在Windows、macOS、Linux环境下均可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:50:14