正如 @AurSaaf 指出的那样,即将推出的新工作将允许创建内置方式的命令(或在扩展中使用)来查找在当前文件中具有预设的查找/替换和选项。
我已经在 github issues 上发表了评论,试图让 args 与其他类似命令保持一致,但无济于事。以下是键绑定中当前可用的参数:
{
"key": "alt+p",
"command": "editor.actions.findWithArgs",
"args": {
"searchString": "howd\\d", // double-escaped
"replaceString": "qqqq9",
"isRegex": true,
// "regexOverride": 1,
"findInSelection": false,
"matchWholeWord": false,
// "matchCase": false,
// "matchCaseOverride": 0,
"preserveCase": false,
"isCaseSensitive": false
// "preserveCaseOverride": 0,
// "wholeWordOverride": 0
}
}
注释掉的参数是无法使用尽管智能感知表明它们是这样的 - 所以该命令仍然有点“粗糙” - 并且目前仅在 Insiders Build 中可用。不要依赖关于智能感知args
键 - 其中许多键的名称错误或此时不起作用。
另请注意,而不是query
and replace
如中使用的workbench.action.findInFiles
并在search.action.openEditor
(打开一个新的搜索编辑器)键绑定,该命令当前使用searchString
and replaceString
因为某些原因。
有关使用所有参数执行大量预定义查找/替换或搜索/替换的功能强大的扩展,请参阅(我写的)。特别是有很多设置选项files to include
范围过滤器 - 例如当前文件或在先前搜索结果中找到的最后一个文件,以将搜索范围缩小到仅这些文件。
还有一种内置方法可以跨文件查找,我不知道您的问题后是否添加了参数。无论如何,我同意有时很难发现哪些命令可以接受参数。
有时,命令中的键绑定内的智能感知会显示它们,但并非总是如此。
所以检查一下:
{
"key": "ctrl+shift+f",
"command": "workbench.action.findInFiles",
"args": {
<cursor here> // cursor there and type Ctrl+space
}
}
将显示那些可用的args
如下例所示。
{
"key": "ctrl+shift+f",
"command": "workbench.action.findInFiles",
"args": {
"query": "Company(\\w+)", // needs to be double-escaped
"replace": "User$1",
"triggerSearch": true,
"isRegex": true,
// "filesToExclude": "",
// "filesToInclude": "",
"matchWholeWord": true,
"isCaseSensitive": true
}
},
这将执行搜索,但不会在您的文件中进行实际替换 - 您必须触发replace [all]
你自己。