如何在Visual Studio Code的集成终端中打开文件?

147

有没有一种方法可以在终端中打开一个文件,并在运行终端的相同 vscode 实例中打开?类似于 Cloud9 工具中 c9 的操作。

我知道使用code工具可以打开文件,但是当你从集成终端运行code something.php时,它会打开一个新的 vscode 实例,这不是我想要的...


11
更具挑战性的任务:我正在终端中使用SSH,想要打开远程文件... - clemtoy
2
使用SSH时,我使用readlink -f something.php来打印文件的完整路径,然后在路径上按Ctrl+单击以在新标签页中打开它。 - Remy F
1
现在在2022年,对于集成终端中的远程SSH,接受的答案(至少对我来说)是有效的。readlink + Ctrl+click技巧也同样适用。 - Alex Che
10个回答

218
你可以使用-r或--reuse-window命令行选项。

-r或--reuse-window命令行选项可用。

code -r something.php

1
@JanJongboom无法确认任何缓慢现象(Ubuntu MATE,vscodfe 1.18)。可能是您的计算机上出了什么问题... - Frank N
7
在Windows 10上为我打开一个新窗口 :/ - Plux
3
“-r” 或 “--reuse-window” 选项对我无效,无论是在Win7还是Win10上。 - Luke
2
-r 对我也不起作用。编辑:我使用的是WSL终端,所以要注意一下。 - Ali Mert Çakar
2
@AliMertCakar 你通过Ubuntu WSL打开它在同一个窗口里了吗?我也遇到了这个问题:( - user16341274
显示剩余9条评论

27

仅仅

code file_name

我在Win10和Linux (Ubuntu)上都试过了


3
在我的 Mac 上也适用。自 被接受的回答(2016年)以来,它们似乎简化了它。 - Melebius

21

我不知道你使用的操作系统是什么,但如果是MacOS,你可以在终端里输入open filename.ext命令,它会在同一个VSCode实例中打开一个新标签页,方便你进行编辑。


3
不适用于macOS 10.11... 使用vscode关联文件,运行“open something.php”会打开一个新的 vscode实例... - Jan Jongboom
1
哦,顺便说一下,如果有相关的话,我使用zsh作为shell和iTerm2 Build 3.0.13 - ellimist
1
这实际上比使用接受的答案中提到的 code -r 命令更快速。 - Riley Steele Parsons
1
对我来说,在 Ubuntu 16.04 上,-r 选项并不是必需的。默认情况下,它会在当前的 VS Code 窗口中打开。 - Francois
在 Mac 上,我发现“-r”不是一个选项。通过阅读帮助文档,似乎没有任何“打开”选项可以在当前的 VS 实例中打开它。macOS 11.4,VS Code 1.58.2。 - Andrew Pye
显示剩余3条评论

17
  1. 打开 Visual Studio Code

  2. 按下 CMD + SHIFT + P (这会打开“命令面板”)

  3. 输入 shell command

  4. 选择“在路径中安装 code 命令”

  5. 从终端导航到任何项目,然后键入 code .

如果没有起作用,请先选择“从路径卸载 code 命令”,然后再重新安装它。


1
这是对我最有帮助的答案。 - D.R
1
我认为这应该是在Mac上被接受的答案。 - iMujtaba8488

8

如果在 macOS 上遇到 command not found: code 错误,需要使用完整的路径。

/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code -r [filename]

4
我使用code -r .命令在主窗口中打开当前目录。

4

许多内容可以在open --help中找到。

在MacOS上,适用于我的解决方法是: open -a 'Visual Studio Code.app' something.php


3

你可以使用CLI中的code命令来打开一个文件,但是如果你想让它在现有窗口中打开,要么像其他答案中提到的一样使用code -r <file>(在我的Ubuntu Linux上确实有效),要么如果-r不起作用(在WSL下?),请确保settings.json或VS Code设置UI中的window.openFilesInNewWindowoffdefault,然后使用code <file>


0

在我安装的版本1.31.0上,使用Windows 7操作系统,我发现唯一的方法是更改系统中的文件关联,使得.cproj和.cs文件默认打开Visual Studio Code,并在终端中输入"filename.cs"来在同一窗口中打开该文件... -r选项在第一次调用时不起作用(会打开一个新窗口),但每次后续调用都会正确地重用同一窗口。这种方式无法打开整个目录,而且有点粗糙。可能使用外部shell并使用"-r"选项会更方便。


0

VSCode 1.64 (2022年1月) 新增了一个命令:

键盘可导航链接

以前,在终端中进行链接导航需要使用鼠标。

现在,可以通过以下命令仅使用键盘打开链接:

  • Terminal: Open Detected Link... 查看所有链接(网页、文件、单词)
  • Terminal: Open Last Web Link... 例如:https://github.com/microsoft/vscode
  • Terminal: Open Last File Link... 例如:/Users/user/repo/file.txt

检查最后一个命令 Terminal: Open Last File Link... 是否适用于您的情况。

另请参见 "终端 shell 集成"。

cwd -- open link


不确定是否是同一个问题,但我最近在Mac上更新了vscode,似乎在终端中cmd+click悬停文件链接现在会弹出“转到文件”(cmd+p)窗口,而不仅仅是打开文件。如果我在集成终端中列出了一个目录,并想要在缓冲区中打开我正在悬停的文件,您知道现在正确的命令是什么吗?Cmd + click以前可以使用,这样更方便。 - totalhack
@totalhack 我的情况和你一样,都是1.66版本,但我使用Windows系统,Ctrl+单击链接可以打开浏览器。对于在集成终端文件夹中的文件,Ctrl+单击会在VSCode中打开该文件。请检查终端:资源管理器种类设置。 - VonC
我认为那可能是不同的东西。它被设置为“集成”,但描述似乎并不是在谈论同一件事情。根据这个链接,我的问题听起来像是“如果无法检测到文件或URL,则仍会将它们显示为低置信度的'工作区搜索'链接”。以前,即使我没有打开过某个文件,它也会直接打开该文件。现在它总是进行工作区搜索,对于新文件来说毫无用处。 - totalhack
也许有些变化使它更紧密地固定在这个工作区概念上,而我并没有专门为这样的原因使用它。如果我手动向我的工作区添加更多目录,至少可以使它们出现在我的“工作区搜索”中,这样只需两次点击即可打开,而不是以前的一个 cmd+click。如果尝试在工作区外打开文件,则仍会遇到此问题,但可以将code -r file_out_of_workspace作为备用方案。 - totalhack
@totalhack 奇怪。你能在一个单独的问题中详细说明这个问题吗? - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接