我希望能够将文件以及文件和行号通过管道传输到
code
,以便 Visual Studio Code (VS Code) 在当前窗口中打开文件。我知道 code
这样做的命令行选项,但我无法弄清楚如何以有效的方式将一些脚本的输出传递给 code
。
例如,也许我想传输
grep
的输出并在 VS Code 中打开文件。以下命令将打印出文件名和行号。
grep --with-filename --line-number --recursive --max-count 1 --include \*.txt 'Test' . \
| cut --delimiter : --fields 1-2
会输出类似
./filename.txt:47
的东西。现在,code
的 --goto
选项可以按预期处理这个问题,如果这样做的话:
code --reuse-window --goto ./filename.txt:47
但是,如果我尝试输入
code
,VS Code 只会关闭当前窗口,然后打开一个新的空白窗口。
grep --with-filename --line-number --recursive --max-count 1 --include \*.txt 'Test' . \
| cut --delimiter : --fields 1-2 \
| code --reuse-window --goto
如何让 VS Code 在当前窗口的行号处打开文件?我是否错误地期望它能正常工作,从而对
bash
和管道做错了什么?或者这是 code
特定问题?
一种方法是使用
xargs
.
grep --with-filename --line-number --recursive --max-count 1 --include \*.txt 'Test' . \
| cut --delimiter : --fields 1-2 \
| xargs --replace code --reuse-window --goto {}
--replace
将假定 {}
这样 xargs
将获取管道的输出并将其放置在以下命令中出现 {}
的位置。
我也对其他方法感兴趣。
你不是把标准输入流和命令行搞混了吗?你想要
code --reuse-window --goto <output of command that produces thing>
(即命令输出用作commandline的一部分),但是你尝试做<command that produces thing> | code --reuse-window --goto
(即将命令输出管道输出到消费者的标准输入流)。
您可以使用
`<command>`
(用反引号括起来)或 $(<command>)
(如果您希望输出被视为单个命令行参数而不是被字段分隔符分割,也用双引号括起来)替换 Bash 命令行中的命令输出).前任。 code --reuse-window --goto "$(grep --with-filename --line-number --recursive --max-count 1 --include \*.txt 'Test' . | cut --delimiter : --fields 1-2)"
.
需要说明的是,这并不是将任何东西输送到
code
。您只想使用命令的输出作为它的参数。
您可以使用普通的旧命令替换:
code --reuse-window --goto "$(grep -hnrm 1 --include '*.txt' 'Test' . | cut -d: -f1-2)"
或
xargs
:
grep -hnrm 1 --include '*.txt' Test . |
cut -d: -f1-2 |
xargs code --reuse-window --goto
• 如何在 Dockerfile 中安装 VS Code 扩展?
• 单击转到 VS Code 中的定义后,如何在同一选项卡中显示打开的文件?
• 如何从配置文件在 VS Code 中生成 schema.graphql
• Visual Studio 命令“代码”。或使用 linux 终端的“code filename.py”确实打开了 VS Code 软件但没有结束执行
• VS CODE MacOS:如何在 VS Code MacOS 中创建可折叠的注释代码块
• 如何将 Visual Studio 键绑定导入 VS Code?
• 如何在 VS Code 中调试 Amplify JavaScript 函数
• 为什么在VS Code中编辑ipynb文件时不能输入字母z?
• Visual Studio Code 在退出后保持文件打开
• 承诺永远在 Visual Studio Code 中使用
• VS Code - 如何为工作区选择 Jupyter 内核?
• C++ VS code Ubuntu:无法打开源文件“opencv2/opencv.hpp”