visual-studio-code - 绑定命令以转到 VS Code 中的特定符号
问题描述
我的问题:
我想绑定一些键盘快捷键来导航到我当前在 VS Code 中打开的文件中的特定符号。
例子:
- 我想按 导航到该
<template>
符号cmd+1
。 - 我想按 导航到该
<script>
符号cmd+2
。 - 我想按 导航到该
<style>
符号cmd+3
。
默认情况下,您可以通过按cmd+p
,然后在调色板中键入@template
,这将跳转到打开文件中的模板标签。
因此,我的 keybinding.json 中的解决方案可能看起来像这样:
{
"key": "cmd+1",
"command": "workbench.action.gotoSymbol",
"args": ["@template"],
}
但是,其中的 args 部分不起作用。我想知道是否有人知道设置这样的键绑定的好解决方案,以便我可以使用快捷方式浏览我的文件。
提前致谢!
解决方案
尝试这个:
{
"key": "cmd+1",
"command": "workbench.action.quickOpen",
"args": "@<template>",
},
该命令workbench.action.gotoSymbol
不会带参数,但workbench.action.quickOpen
会。我不知道为什么会有这种差异,但如您所知,如果您启动快速打开面板,@
您将获得对象引用。例如,您的其余文本<template>
将自动输入到输入框中。
它将过滤这些符号,但不会跳转到第一个。如果您想要该附加功能,则必须考虑选择第一个条目的宏。
有一种替代方法允许您使用匹配的正则表达式导航到任何内容。请参阅允许跳转到任何字符串的扩展名Select By 。例如(在 settings.json 中):
"selectby.regexes": {
"goTo<template>": {
"moveby": "<template>",
}
}
和你的键绑定(keybindings.json):
{
"key": "ctrl+1", // <template>`
"command": "moveby.regex",
"args": ["go<template>", "moveby", "next", "start", "wrap"],
// "when": "editorTextFocus && editorLangId == javascriptreact"
}
您也可以将其设置为跳转到上一个实例:
{
"key": "ctrl+alt+1", // previous <template>
"command": "moveby.regex",
"args": ["goTo<template>", "moveby", "prev", "start", "wrap"],
// "when": "editorTextFocus && editorLangId == javascriptreact"
}
无论哪种方式,它现在都应该“换行”,它只取决于文件中有多少<templates>
以及您想首先转到哪个方向。
推荐阅读
- c# - 如何为连续 LBA 执行 SCSI 写入,例如“0x0000 到 0x1000”
- sql - T-SQL LAG 函数默认值
- mysql - 为什么 ifnull() 在 MariaDB 10.1+ 中返回 DECIMAL 而不是 BIGINT?
- python-3.x - 将属性(函数)添加到 pandas.DataFrame() 作为类的一部分
- reactjs - 使用“withTranslation”HOC 在反应模态子组件中使用 i18next 翻译时出错
- php - 带有 yii1.1 的 db 数据的下拉列表
- angular-schematics - 角度示意图混乱
- webstorm - 我可以在 Webstorm 上受到内联指责(如 GitLens)吗?
- python - 如果文件内容中的颜色代码如何显示彩色文本
- powershell - PowerShell中的Write-Verbose vs Write-Host