簡體   English   中英

我如何 pipe output 進入 Visual Studio 代碼?

[英]How do I pipe output into Visual Studio Code?

我想將 pipe 的 output 的命令轉換成 Visual Studio Code 中的新文本 window。

通常,我會做這樣的事情:

echo foo | code

...但這似乎行不通; Visual Studio Code 啟動,但不顯示輸入。 有沒有辦法在命令行上做管道?

從 1.19.1 版開始,您可以通過調用將輸出通過管道傳輸到當前窗口:

<command> | code -

如果您使用的是 1.19 或更早版本,則不需要 arg:

<command> | code

截至 2016 年 9 月,它似乎不受支持,但有一個未解決的問題來實施它:

https://github.com/Microsoft/vscode/issues/6161

我在 Ubuntu Gnome 17.10 (Artful Aardvark) 上運行 Visual Studio Code v1.19.3。 僅管道到code不足以bin 到stdin。

$ ps aux | code
Run with 'code -' to read from stdin (e.g. 'ps aux | grep code | code -').

您必須添加-運算符:

$ ps aux | code -

這正在工作並打開一個由命令輸出填充的新文本選項卡。

當我使用接受的答案時,控制台會被阻止,直到我關閉 VS Code 中的相應選項卡。 由於我經常希望在 VS Code 中保持選項卡在我繼續使用控制台時保持打開狀態,因此我想出了這個愚蠢的解決方法:

ls > t; code t; rm t

它重定向到當前目錄中的文件t ,告訴 VS Code 打開該文件,然后將其刪除。 您將在 VS Code 中一個標簽為t (deleted)的選項卡中看到該文件的內容。

如果 VS Code 尚未打開,則需要稍微延遲(1 秒對我有用):

ls > t; code t; sleep 1; rm t

筆記

  • 我使用 Git Bash 或 PowerShell 7 在 Windows 10 上對此進行了測試。
  • 當然,請注意用於一次性文件的名稱,以免覆蓋真實文件。

您還可以使用終端擴展中的復制/管道,並在終端中使用cp2codetee2codetee2code不會終止管道鏈),如下所示:

ls ~ | cp2code
ls ~ | tee2code | sort

它會打開一個新文檔,其中包含輸入的數據。 如果您有多個 VS 代碼 windows,它會顯示您運行命令的 window 上的復制數據。

我為 VSCode 做了一個擴展,解決了這個問題,同時 VSCode 仍然打開

https://marketplace.visualstudio.com/items?itemName=YuvrajMishra.vscode-pipe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM