在 Visual Studio Code 中,如何返回到上次光标位置?

1252

在Visual Studio Code中,导航回到上一个光标位置的键盘快捷键是什么?


2
如果是我通常使用的VS键映射,则为Ctrl - - Sami Kuhmonen
28
在Visual Studio Code中,该快捷键对应的是“缩小视图”的功能。 - kimsagro
6
我认为你混淆了Mac OSX和Windows的默认设置。在Mac OSX上,CTR+ - 实际上是缩小页面的快捷键,而CMD + - 是缩小显示内容的快捷键。请注意区分。 - OderWat
3
使用 Visual Studio Keymap 扩展程序 - https://marketplace.visualstudio.com/items?itemName=ms-vscode.vs-keybindings - George Paoli
3
从VS Code 1.28开始,您可以使用Ctrl+K Ctrl+Q快捷键跳转到最后一次编辑的位置 - https://code.visualstudio.com/updates/v1_28#_navigate-to-last-edit-location - sudormrfbin
显示剩余2条评论
16个回答

2161

键盘快捷命令包括前进后退


在Windows系统上:

Alt + ... 后退

Alt + ... 前进

在Mac系统上:

Ctrl + - ... 后退

Ctrl + Shift + - ... 前进

在Ubuntu Linux系统上:

Ctrl + Alt + - ... 后退

Ctrl + Shift + - ... 前进


193
我不明白为什么微软决定在普通的Visual Studio和其他版本中使用不同的热键。这让频繁切换的操作非常烦人。请问需要如何翻译? - RayLoveless
37
你能用鼠标完成这个操作吗?在其他的集成开发环境中,后退手势/按钮同样可以导航到上一个页面。 - rynop
3
有点烦人的绑定方式,可惜只能在Windows上使用 :( 如果能和Visual Studio一样就好了。 - Chris Owens
10
@RayLoveless VS Code 是由微软制作的,因此在 Windows 上 Alt+← 是默认快捷键。但是,在 Linux 和 Mac 上,Alt+← 是系统快捷键,因此它们必须更改这个快捷键。 - Lenny
4
在“首选项 > 快捷键”下搜索“workbench.action.navigateBack”和“workbench.action.navigateForward”对我有用,因为我有一个扩展程序改变了默认行为。请注意,我的翻译保持原意,但更易于理解。 - Alex
显示剩余16条评论

128

我使用的是 Mac OS X,所以无法回答 Windows 用户的问题:

我添加了一个自定义按键映射,并将其设置为 Ctrl + + Ctrl + ,而原始默认值是 Ctrl + -Ctrl + Shift + -(在我的德语键盘上表示为 Ctrl + ßCtrl + Shift+ß)。

用户可以在用户按键映射设置中简单地修改它:

{ "key": "ctrl+left",  "command": "workbench.action.navigateBack" },
{ "key": "ctrl+right", "command": "workbench.action.navigateForward" }

对于被接受的答案,我实际上有些疑惑 :) 对于我来说,Alt + / Alt + 每次跳到一个单词(这在所有编辑器中都是标准)。他们真的为Windows版本做了这个映射吗?


17
Ctrl+LeftCtrl+Right 是预留用于在全屏间切换的,对吗? - duong_dajgja
4
@duong_dajgja 我的快捷键是Ctrl+Option+Command左/右。大多数人通常只使用触控板上的三指滑动。我不确定在新安装的OS X Sierra中的“原始”默认设置是什么。至少在OS X中没有保留任何内容。您可以在系统偏好设置“键盘->任务控制”中轻松更改它。 - OderWat
6
使用此链接进行更改: https://code.visualstudio.com/docs/getstarted/keybindings#_advanced-customization。 - Average Joe
1
有没有办法可以将鼠标的前进和后退按钮分配为导航键? - Firzok Nadeem
正如@duong_dajgja所指出的,这个键组合是被保留的。我改用了ctrl+shift+left - James Webb
2
很棒的答案。您还可以通过 文件 → 首选项 → 快捷键,然后搜索 返回前进 找到它。 - Benyamin Jafari

116

这对每个操作系统都不同,根据 Visual Studio Code 快捷键绑定 中的信息进行设置。

工作台配置:

返回:workbench.action.navigateBack
前进:workbench.action.navigateForward

Linux:

返回: Ctrl+Alt+-
前进: Ctrl+Shift+-

Mac OS X:

返回: Ctrl + -
前进: Ctrl + Shift (⇧) + -

Windows:

返回: Alt + ⬅️
前进: Alt + ➡️


4
我正在使用Linux,但默认的键位映射无法正常工作。我将其修改为Alt+Left,现在完美运行。 - greuze
3
这应该是被接受的答案 :) - alxsimo
2
文件/首选项/键盘快捷方式[Ctrl-K Ctrl-S],然后搜索“workbench.action.navigateBack”。在Linux上需要进行设置。 - pdem

30

回答你的问题,对于:

  1. Windows 使用 Alt+ 向后导航,使用 Alt+ 向前导航。
  2. macOS 使用 Ctrl+- 向后导航,使用 Ctrl+Shift+- 向前导航。
  3. Linux 使用 Ctrl+Alt+- 向后导航,使用 Ctrl+Shift+- 向前导航。

您可以在“键盘快捷方式编辑器”中找到当前的按键绑定。

您甚至可以根据自己的喜好编辑按键绑定。


6
你已经交换了Windows和Mac的绑定。 - Perrier
正如Perrier所说,您已经切换了Windows和Mac。 - Owen Valentinus

23

有一个名为Code-Navigation的扩展工具适用于各种平台。它提供了按钮,位于状态栏左侧,可作为键盘快捷方式的替代。

enter image description here

enter image description here


4
我认为这是这里所有答案中最好的答案。 - Adem
1
了不起的好极了! - Cristián Vargas Acevedo
1
显然,现在这已经集成到VSCode中了:https://dev59.com/UlEG5IYBdhLWcg3weu_a#75892641 - Karthic Raghupathi
好的,@KarthicRaghupathi,我甚至都没注意到! - Godwin Mathias

16

要设置自己的键盘快捷方式(即使该组合键已经被占用),可以前往 Code > Preferences > Keyboard Shortcuts 并在那里进行设置。

  1. 打开设置:Code > Preferences > Keyboard Shortcuts
  2. 找到 Go ForwardGo Back,并将它们设置为您喜欢的任何内容。
  3. 如果一个键盘快捷键被双重分配,VSCode会告诉你,然后你可以单击进入并更改/删除其他快捷键。例如,我的快捷键已经被分配给了缩进和取消缩进。

gif showing the process of setting up the new keyboard shortcuts

例如,我们的主要工具是在Mac上使用 cmd+[cmd+] 转到前一个位置和后一个位置的Android Studio。这对于通过 cmd+click 深入函数特别有用。(因此,您可以跟随您的代码,如同阿里阿德涅的线索在弥诺陶洛斯的迷宫中一样。确实有帮助!这样您就可以在代码之间跳转,深入和退出函数,并在文件之间来回跳转。


14

针对 macOS:

+ U:撤销上一个光标操作

你也可以尝试使用 Ctrl + -

值得一提的是,所有快捷键都在 macOS 快捷键 中。这真的很有用!


1
非常感谢您的回答!虽然其他人都告诉您如何在不同文件之间前后导航,但我对导航光标历史感兴趣。您可以添加(尽管这有点显而易见)重做光标操作来配合它。 - panepeter

9

vscode v1.65将添加一些新的命令,用于导航到上一个/下一个编辑位置或上一个/下一个光标位置。

编辑位置(edit location) 意味着实际发生了编辑,而 光标位置(cursor location) 意味着你访问了该位置,但不一定进行了编辑。

默认情况下,当您在编辑器之间导航时,会添加编辑器导航位置,但在编辑器内进行导航时也会添加(例如,在笔记本单元格中切换或在文本编辑器中更改选择时)。如果您觉得记录的位置太多,已添加新的命令以将位置减少到以下两种类型之一:

  • 导航位置(例如使用“转到定义”时)
  • 编辑位置(每当编辑器更改时,例如在文本编辑器中键入时)

光标位置:

Go Forward in Navigation Locations
"workbench.action.navigateForwardInNavigationLocations"

Go Back in Navigation Locations
"workbench.action.navigateBackInNavigationLocations"

Go to Last Navigation Location
      // acts like a toggle between current and last cursor location
"workbench.action.navigateToLastNavigationLocation"

Go Previous in Navigation Locations
"workbench.action.navigatePreviousInNavigationLocations"

编辑位置:

Go Forward in Edit Locations
"workbench.action.navigateForwardInEditLocations"

Go Back in Edit Locations
"workbench.action.navigateBackInEditLocations"

Go Previous in Edit Locations
"workbench.action.navigatePreviousInEditLocations"

Go to Last Edit Location
      // acts like a toggle between current and last edit location
"workbench.action.navigateToLastEditLocation"

新增了关联上下文键,使分配按键绑定更加强大:
  • canNavigateBackInNavigationLocations: 是否可以返回导航位置
  • canNavigateForwardInNavigationLocations: 是否可以前进到导航位置
  • canNavigateToLastNavigationLocation: 是否可以跳转到最后一个导航位置
  • canNavigateBackInEditLocations: 是否可以返回编辑位置
  • canNavigateForwardInEditLocations: 是否可以前进到编辑位置
  • canNavigateToLastEditLocation: 是否可以跳转到最后一个编辑位置

8

Mac OS (MacBook Pro):

后退: Ctrl(控制) + - (连字符)

前进: Ctrl + Shift + - (连字符)


8

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