在VS Code中跳转到闭合标签?

98

我似乎找不到一种方法通过某些键组合或其他方式在 VS Code 中选择括号的开头并跳转到结尾。例如,atom 中可以使用 Ctrl+m 来完成这个操作。

我知道可以使用 Cmd+Shift+\ 跳转到括号或花括号的开头和结尾,但这对标签没有用。有什么想法吗?


没有其他答案需要补充的,但我个人更喜欢使用 alt+>,因为它与标签中的尖括号有点相关。但请注意,要分配此键绑定,您必须使用点(.)而不是 >,至少在我的键盘上这些键位于同一个键上。(另外,在其他非 Windows 操作系统中,alt 键可能被称为其他名称,如 meta - aderchox
6个回答

127

可以做到,但需要使用 Ctrl + Shift + P -> "Emmet: Go to Matching Pair" 或手动设置快捷键 (Ctrl + K Ctrl + S)。

不幸的是,当前没有直接支持这一功能。


1
在 VS Code 中,自定义快捷键的通用格式是什么? - Code
顺便提一下,我把我的设为cmd-;。 - Steve
如何知道可用于绑定的按键组合,而不覆盖任何现有的绑定?编辑:哦,算了。在您输入时,它会告诉您是否已被占用。 - Kevin Wheeler
啊,只是出现了“无法在字符7028处解析引号字符串”的错误。 - undefined

61
你可以在VSCode中使用Cmd+%来跳转标签,如果你将以下代码添加到你的keybindings.json文件中。
{
    "key":"cmd+shift+5",
    "command": "editor.emmet.action.matchTag"
}

转到:文件 > 首选项 > 键盘快捷方式 并单击下划线链接以编辑 keybindings.json

对于使用VIM按键的用户:您已经习惯了按%跳转到匹配的括号和标签。希望Cmd + %足够接近您现有的肌肉记忆,使这个过渡变得轻松。


2
非常赞赏保持向后兼容性以基于VIM的匹配的想法。 - Anshuman Manral
2
我不知道是不是因为我有更新版本的原因,但它没有起作用。我必须写成这样:{ "key": "ctrl+shift+5", "command": "editor.emmet.action.matchTag", "when": "editorTextFocus" } - Francois Girard
3
当终端处于焦点状态时,ctrl+shift+5 可以分割终端。我使用 alt+[ 进行标签匹配。 - Cees Timmerman
1
我在大括号内添加了一行代码:"when": "editorFocus"。因此,您可以将其与终端分割键绑定一起使用。 - nav
1
注意:在 Mac 上,cmd+shift+5 可以触发屏幕截图。 - Oliver Joseph Ash
显示剩余3条评论

14

对于那些使用Vim插件和Mac的人,Leader+% 对我来说效果很好。

您可以在Vim的json文件 setting.json 中添加以下设置:

"vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": ["<leader>", "%"],
      "commands": [
        {
          "command": "editor.emmet.action.matchTag"
        }
      ]
    }
]

顺便提一下,我提到了Mac用户,因为在Mac上使用cmd+shift+5可以截屏。


什么是 Leader?(我使用 Vim 和 Mac) - User
好的,我谷歌了一下 - 尽管只使用“%”对我来说已经很好了。 - User
你能在可视模式下让它工作吗?我已经将绑定添加到“visualModeKeyBindings”,但没有成功。我想要能够使用“shift + V”选择整个HTML块,从起始标记到结束标记,并使用“leader +%”选择到结束标记行。 - Ian Jamieson

6

我认为你是在询问与面包屑键盘导航相关的问题。

在这种情况下,你可以简单地按下Ctrl+Shift+.来进入当前元素之前或之后的元素。


它的行为很奇怪:当我想停留在标记中并放置光标时,它会立即将我抛回到结束标记处 :( - Alexander

5

4

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