VSCode:在Mac OSX上使用Enter键从文件资源管理器中打开文件

144

在Windows上使用VSCode时,我可以浏览文件资源管理器,然后在聚焦的文件上按Enter键,文件就会在编辑器中打开。但是,在我的Mac上这样做时,VSCode会展示重命名输入框如下:

enter image description here

我不确定为什么会这样,即使在其他文本编辑器(例如Atom)中,默认行为也是在按下Enter键时打开文件。是否有方法可以更改此行为,以便在按下Enter键时打开文件?到目前为止,我找到的唯一解决方法是使用CTRL+Enter键,这将在新窗格中打开文件,但由于VSCode的3个窗格限制,这相当受限。


1
@rmjoia 抱歉我表达不够清晰。我并不是想在资源管理器或Finder中显示文件,我只是想打开这个文件。当我点击Enter键时,VSCode会要求我在Mac上重命名该文件。我不想重命名文件,我只是想打开它。在Windows中,这个功能可以正常工作,但在Mac上却不能。 - Johnny Oshika
1
在 VS Code 中打开?像编辑一样吗?怎么打开? - rmjoia
2
是的,我只想在不用把手指离开键盘的情况下在VSCode中打开文件进行编辑。我经常在Atom、Visual Studio甚至Windows版的VSCode中这样做,但在Mac版的VSCode中似乎无法实现。每当我按回车键时,它就会尝试重命名文件(如上面的截图所示)。 - Johnny Oshika
1
好的,我会删除我的回答,因为它对问题没有任何帮助。我建议使用VSCode论坛作为功能请求或从社区中获取提示。 - rmjoia
3
这种行为的解释是,“Enter”是在OS X中重命名文件的快捷方式 - 在Finder中试试吧 :) - Jak S
显示剩余3条评论
11个回答

254
如果其他人遇到这个问题,打开Mac上VSCode文件浏览器中的文件的键盘快捷键是:CMD+下箭头。这也适用于Finder。

5
+1 但这会替换掉当前已经打开的文件选项卡。有什么办法可以在同一面板中以新选项卡的形式打开吗? - pavsaund
7
你可以通过添加"workbench.editor.enablePreview": false"workbench.editor.enablePreviewFromQuickOpen": false到你的设置中来禁用预览。 - Dima Kuzmich
3
@DimaKuzmich,太好了!只需设置第一个参数"workbench.editor.enablePreview": false,便足以使得每个文件都在自己的选项卡中打开。 - Brad Cupit
7
谢谢,我不知道他们为什么要把这个搞得这么难以理解。在命令列表中,我甚至找不到Cmd + Down的命令。 - gerrytan
我猜他们想保持与OSX Finder体验的一致性... - Miguel Reyes
显示剩余6条评论

43

我最终将几个解决方案编译在一起,得到以下keybinding.json修改版(通过Code > Preferences > Keyboard Shortcuts > keybindings.json打开):

  {
    "key": "cmd+enter",
    "command": "renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus"
  },
  {
    "key": "enter",
    "command": "-renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus"
  },
  {
    "key": "enter",
    "command": "list.select",
    "when": "listFocus && !inputFocus"
  }

3
现在,这个资源管理器窗口完全可导航。我不需要点击来浏览文件树了。我只需从编辑器中按下CMD-SHIFT-E来切换到文件资源管理器,用箭头键移动到另一个文件,然后按enter打开该文件并将焦点切换回编辑器。非常直观易懂。谢谢。 - ObjectiveTC
3
如果你和我一样,想把这个放进JSON文件里...按下“命令(Command) + Shift + P”打开命令面板,搜索“Preferences: Open Keyboard Shortcuts (JSON)”,然后就能找到这个文件了。 - iamnotsam
1
比 @iamnotsam 的回答更简单的方法是在 VSCode 中按 F1 打开命令面板。 - Timo

28
在版本1.19.2中,我可以在Mac上进入键盘快捷方式(菜单栏>代码>首选项>键盘快捷方式),搜索“重命名”,并编辑“renameFile”(“When”值为“explorerViewletVisible && filesExplorerFocus && !inputFocus”),将快捷方式更改为“cmd+enter”。您还可以将以下内容粘贴到keybindings.json中(在键盘快捷方式页面上有链接)。
{
  "key": "cmd+enter",
  "command": "renameFile",
  "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus"
}

现在,按Enter键会在资源管理器中打开高亮显示的文件,而按ctrl+Enter键则会将其置于重命名/编辑模式。


–编辑–

升级到1.21.0后,按Enter键再次起到了重命名文件的作用。同样,cmd+Enter也起到了重命名文件的作用。要解决此问题,可以前往菜单栏 > 代码 > 首选项 > 键盘快捷方式,右键单击有问题的条目并将其删除,或者在keybindings.json中的命令前添加一个连字符/减号:

{
  "key": "enter",
  "command": "-renameFile",
  "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
}

18
在我的 Mac 上,只需按下空格键即可为我打开文件。

1
按下空格键可以打开文件,但焦点仍在资源管理器上。这对于打开几个不同的文件而无需来回切换非常有用,但它与打开文件并将焦点放在编辑器上的命令不同。 - Théophile
1
打开文件后,按下CMD+Shift+E将切换焦点到您的文件,如果您想编辑文件。 - ifedapo olarewaju

11

我也遇到了这个问题,但我最终使用的键盘快捷键是将 cmd+enter 映射为重命名,并从 enter 中删除 renameFile。

{
  "key": "cmd+enter",
  "command": "renameFile",
  "when": "explorerViewletVisible && filesExplorerFocus"
},
{
  "key": "enter",
  "command": "-renameFile",
  "when": "explorerViewletVisible && filesExplorerFocus"
}

1
这对我没用。在使用 GUI 编辑器选择“删除”后,bkidd 的答案 中略长的否定绑定是在 keybindings.json 中生成的。这在 VSCode 1.24.1 中对我有效。 - AdamAL

10
  • SPACE: 打开文件夹并保持焦点在资源管理器上 (filesExplorer.openFilePreserveFocus 命令)
  • CMD+Down: 打开并聚焦已打开的文件 (explorer.openAndPassFocus 命令)

您可以在 "代码 - 首选项 - 键盘快捷方式" 中更改它们: 键盘快捷方式 (代码 - 首选项 - 键盘快捷方式)


9

cmd+down在我使用的Mac 10.10.5上,无法在VSCode 1.10.2中正常工作。

然而,cmd+enter对我来说是有效的。

如果您想要设置自己的键绑定以从文件资源管理器中打开文件,则可以将以下行添加到您的keybindings.json中:

// open file from File Explorer
{ "key": "enter", "command": "list.select",
                     "when": "explorerViewletVisible && filesExplorerFocus" },

(当然,您可以将enter更改为任何您想要的组合键)。

6

我试图删除“重命名”的快捷方式,它的键绑定是“Enter”。然后当我按下“Enter”键时,文件可以正确打开。


2

对我来说,我需要执行command0,然后执行commanddown,这会带我到资源管理器并打开我选择的文件。 在Atom中,我只需要按enter即可打开文件,我觉得这是一种奇怪的行为。vscode v 1.21.1OSX 上。


-1
在首选项中:
代码 -> 首选项 -> 快捷键
将以下内容添加到您的keybindings.json文件中。
{

    "key": "ctrl+n",
    "command": "workbench.action.files.newFile"
}

在可能包含您设置的其他键绑定的数组内。保存keybindings.json文件

然后,当您在文件资源管理器中导航到一个目录时,您可以使用ctrl + n创建一个新文件


嗯,你是不是回答了一个不同的问题?这个问题是关于打开一个已存在的文件。 - Johnny Oshika

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