我想将命令输出导入Visual Studio Code的一个新文本窗口中。
通常,我会像这样操作:
通常,我会像这样操作:
echo foo | code
...但似乎不起作用;Visual Studio Code启动了,但它没有显示输入。有没有办法在命令行上进行管道操作?
echo foo | code
...但似乎不起作用;Visual Studio Code启动了,但它没有显示输入。有没有办法在命令行上进行管道操作?
从1.19.1版本开始,您可以通过调用以下命令将输出导向当前窗口:
<command> | code -
如果您使用的是1.19或更早版本,则不需要arg参数:<command> | code
使用 'code -' 运行以从 stdin 读取(例如 'ps aux | grep code | code -')
,因此我不得不使用 <command> | code -
。 - GuiSim我正在使用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 -
这个命令有效,并打开了一个新的文本标签页,其中填充了命令输出。
ls > t; code t; rm t
t
,告诉VS Code打开该文件,然后删除它。您将在标签为t(已删除)
的选项卡中在VS Code中看到文件的内容。ls > t; code t; sleep 1; rm t
笔记
编辑:我为此编写了一个函数,以便将其添加到我的PowerShell配置文件中。
Function Out-Code {
do {
$filename = New-Guid
} while (Test-Path $filename)
$input > $filename
code $filename
Start-Sleep 1
Remove-Item $filename
}
Set-Alias oc Out-Code
ls | oc
code -
命令在输入流关闭或到达末尾时没有退出的 bug 还未被修复。例如:https://github.com/microsoft/vscode/issues/66600 - pabouk - Ukraine stay strong你还可以使用从终端复制/粘贴扩展程序并在终端中使用cp2code
或者 tee2code
(tee2code
不终止管道链),像这样:
ls ~ | cp2code
ls ~ | tee2code | sort
它会打开一个新文档,并将数据传输到其中。如果您有多个VS Code窗口,它将在您运行命令的那个窗口上显示复制的数据。
echo 123 | code -
无法正常工作。 - imba-tjd