所以我正在使用VSCode进行反应开发,我想知道是否可以使用快捷方式跳转到render函数。自然地,没有预配置的方法。因此,我调查了一下并找到了GitHub issue。
{
"key": "shift+alt+p",
"command": "workbench.action.quickOpen",
"args": "@:render"
},
问题是,该快捷方式打开了vscode窗口。这是预填充的,我必须按Enter键才能进行实际的“导航至”。有谁知道如何执行此操作而无需按Enter键?
我认为唯一的方法是使用宏来运行quickOpen
命令并使用一个键进行选择。
使用multi-command之类的宏扩展名,将其放入您的设置:
"multiCommand.commands": [
{
"command": "multiCommand.goToRender",
"sequence": [
{
"command": "workbench.action.quickOpen",
"args": "@:render"
},
"workbench.action.acceptSelectedQuickOpenItem"
]
}
]
和一些用于触发该宏的键绑定(在您的keybindings.json中:
{
"key": "shift+alt+p",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.goToRender" },
"when": "editorTextFocus"
}
当然,如果您有多个render
对象,则将选择第一个对象并将其导航到。
一种替代方法是使用selectBy扩展名,可以将其扩展为跳转到单词render
的下一个或上一个出现的位置。该扩展名可以移至出现单词的位置(并且不选择任何内容)。在您的设置中:
"selectby.regexes": {
"goToRender": {
"moveby": "render",
}
}
以及一些键绑定(无论您想要什么绑定):
{
"key": "shift+alt+p", // go up to the previous `render`
"when": "editorTextFocus",
"command": "moveby.regex",
"args": ["goToRender", "moveby", "prev", "start"]
},
{
"key": "alt+p", // go to the next `render`
"when": "editorTextFocus",
"command": "moveby.regex",
"args": ["goToRender", "moveby", "next", "start"]
},