【VS Code插件开发】创建终端(八)

986 阅读2分钟

在VS Code开发工具中也可以通过自定义指令实现操作终端的操作,然而终端该怎么创建呢?

一、createTerminal创建终端

当发送具体命令时,需要一个执行命令的函数,传入什么就执行什么命令。函数主要实现创建终端以及执行传过来的具体指令,注意重复创建终端的情况,不需要要进行销毁。创建终端需要通过createTerminal方法,接收一个options参数对象。

	const terminal = vscode.window.createTerminal(options);

options 参数包括以下属性:

  • name:一个字符串,用于指定终端的名称。这个名称将显示在 VS Code 终端面板中已打开终端的列表中。

  • shellPath:一个字符串,用于指定终端所使用的 shell 可执行文件的路径。例如,你可以提供 Bash 或 PowerShell 可执行文件的路径。

  • shellArgs:一个字符串数组,用于指定传递给 shell 的命令行参数。

  • cwd:一个字符串,用于指定终端的当前工作目录。终端将在这个目录中启动。

  • env:一个对象,定义要为终端设置的环境变量。

这里给一个options示例:

  const terminalOptions = {
    name: "coldPlayer的终端",
    shellPath: "/bin/bash",
    shellArgs: [],
    cwd: "/工作目录的路径",
    env: {
      CUSTOM_ENV_VAR: "我的值",
    },
  };

二、终端方法

上面创建的终端terminal有哪些交互的方法与属性呢?

1、terminal.hide()

隐藏终端。如果终端已经被创建且当前可见,调用这个方法将会隐藏终端。

   terminal.hide();

2、terminal.show()

显示终端。执行某个命令时需要显示终端,调用这个方法将会显示终端。

   terminal.show();

3、terminal.dispose()

销毁终端。如果不再需要一个终端,可以调用这个方法来释放资源。

   terminal.dispose();

4、terminal.sendText(command, addNewLine)

向终端发送命令,允许传递一个可选的 addNewLine 参数(布尔类型),控制是否在发送命令后添加新行。 addNewLine 默认为true ,执行命令后自动换行。

// 发送命令并添加新行
terminal.sendText("npm start", true);

5、 terminal.processId

只读属性,用于获取终端的进程标识符 (PID),PID可以监视和管理终端的进程。注意:获取pid是一个异步的过程。

const pid =  terminal.processId;

三、案例

创建终端,并执行git add .的命令

  const terminalOptions = {
    name: "coldPlayer的终端",
    shellPath: "/bin/bash",
    shellArgs: [],
    cwd: "/工作目录的路径",
    env: {
      CUSTOM_ENV_VAR: "我的值",
    },
  };
async function executeGitCommand(command: string, options: vscode.TerminalOptions) {
	const terminal = vscode.window.createTerminal(terminalOptions);
	//因为pid的获取时异步的过程,所以这里用await后,能打印出pid的值
	const pid = await terminal.processId;
	console.log(pid, 'pid')
	terminal.sendText(command);
	terminal.show();
	console.log(terminal, 'terminal')  
	//   terminal.dispose();
	//   console.log(terminal,'terminal')
}
export async function activate(context: vscode.ExtensionContext) {
      vscode.commands.registerCommand('wxRead.gitAdd', () => {
			executeGitCommand('git add .', terminalOptions );
		})
}		

控制台创建自定义终端,并执行git add .命令 在这里插入图片描述 打印的结果 在这里插入图片描述