1. 程式人生 > >vscode-擴充套件外掛-呼叫系統程式

vscode-擴充套件外掛-呼叫系統程式

呼叫系統程式 (windows的exe)

嘗試了幾個nodejs庫 如 child_process , shelljs 等去執行命令, 均失敗, 但是用純js寫的就可以執行命令. 一度失望, 讓後想到可以使用終端相關api, 在終端中開啟, 嘗試了一下結果ok啊啊啊!!! 喜大普奔…

以用Markdown編輯器開啟Markdown檔案為例.

    private mdTml: vscode.Terminal | undefined;
    public async openMarkdown() {
        let doc =  vscode.window.activeTextEditor!.document;
        let path = doc.uri.fsPath;
        if (doc.languageId !== "markdown") {
            Utils.showErrMsg(`不是 Markdown 檔案, (${path})`);
            return;
        }
        
        if (this.mdTml === undefined) {
            this.mdTml = vscode.window.createTerminal("TyporaOpen");
        }

        let cmdStr = `Typora ${path}`; // Typora 所在目錄必須在環境變數中, 你也可以把它抽出來作為配置
        this.mdTml.show(false);
        this.mdTml.sendText(cmdStr);
    }

	vscode.window.onDidCloseTerminal((terminal) => { // 監聽終端被關閉
        if (terminal.name === "TyporaOpen") {
            this.mdTml = undefined;
        }
	});