我似乎找不到一个可以从VSCode键绑定运行的文档化命令的好列表。
在联机VSCode文档中,《命令指南》列出了两种发现命令的方法:
键盘快捷键的命令通常是不带参数的“简单”命令。“高级命令api”似乎缺少一些非常基本的命令。
例如,在VSCode Keybindings页面上有一个名为“命令参数”的部分,其中包含以下示例条目:
{ "key": "enter", "command": "type",
"args": { "text": "Hello World" },
"when": "editorTextFocus" }
但是我没有看到type
命令被记录在案。所以我假设可能还有其他一些类似的基本命令,但我不知道在哪里可以找到它们的文档。
无论如何,我现在真正想要的是一个命令,我可以运行它在当前编辑器中执行预定义的搜索和替换,指定查找文本、替换文本和选项。。。如下所示:
{ "key": "ctrl+shift+8",
"command": "findReplaceAll",
"args": {
"findText": "Company(\\w+)",
"replaceText": "User$1"
"options": { "ignoreCase": false, "wholeWord": true, "regex": true }
},
"when": "editorTextFocus" }
但是我在文档中找不到任何这样的findReplaceAll
命令或类似的东西,但肯定存在类似的东西,对吗?
谢谢
正如@AurSaraf所指出的,新的工作即将到来,这将允许创建一个内置命令(或在扩展名中使用),以使用预设的查找/替换和选项在当前文件中查找。
我已经评论了github问题,试图让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
}
}
注释掉的参数不可用,尽管intellisense显示它们是可用的——所以命令仍然有点“粗糙”——并且目前只在内部构建中可用。不要依赖args
键的智能感知——在这一点上,它们中的许多都是错误命名或不起作用的。
另外,请注意,不要使用工作台中使用的
查询
和替换
。行动在搜索中查找文件。行动openEditor
(打开新的搜索编辑器)键绑定,由于某种原因,此命令当前使用searchString
和replaceString
。
要获得一个强大的扩展来执行大量预定义的查找/替换或搜索/替换所有参数,请参阅查找和转换(我写的)。特别是,有很多选项用于将
文件设置为包括
范围过滤器——比如当前文件或在以前的搜索结果中找到的最后一个文件,以将搜索范围缩小到仅这些文件。
还有一种内置的方法可以跨文件查找,我不知道在您的问题之后是否添加了参数。无论如何,我同意有时很难发现哪些命令可以接受参数。
有时,命令中键绑定中的intellisense会显示它们,但并不总是如此。
因此,检查这个:
{
"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
}
},
这将执行搜索,但不会在您的文件中进行实际替换-您必须自己触发
替换[all]
。
我正在寻找一个API来做这作为一个扩展作家,它似乎是一个添加不到一个月前(你也可以用它来手动定义一个键绑定,如果我理解正确):
https://github.com/microsoft/vscode/commit/8e96e0b389aedf46423431487190b878d4243edb
安装扩展替换规则。
在您的settings.json
(工作区或用户)中构造搜索替换。阅读关于可能性的页面。
"replacerules.rules": {
"Replace User": {
"find": "User(\d+)",
"replace": "Player$1"
}
}
在键绑定中。json
定义以下键绑定:
{
"key": "ctrl+shift+alt+u",
"command": "replacerules.runRule",
"when": "editorTextFocus",
"args": { "ruleName": "Replace User"}
}
如果选择某些文本,则搜索替换将仅在所选内容内执行。
例子 #include <stdio.h> int main (void) { int i, sum; for (i = 1, sum = 0; i <= 10; i++) { sum += i; #ifdef DEBUG printf ("sum += %d is %d\n", i, sum); #endif } print
我正在处理一个vscode扩展,它需要执行一个外部程序来执行不同的任务。如果外部程序没有参数:UI pop。使用cmd行参数:cmd行模式。我已经使用electron构建了这个应用程序,它在调试和在cmd行上使用electron启动时运行良好。这是一个包裹。exe在Windows上运行,在命令行或直接双击命令行中也同样有效。 当我试图用child_进程从我的vscode扩展执行它时,事情变得糟糕了
} 预期的结果应该是:当编写'test-argumentcompleterf'时,点击tub按钮后,F autocompleted到ful。提前感谢您的帮助!
问题内容: 我只想从特定文件夹执行文件。就我而言/ data / data / my-package / files /。所以我试着: 没用 谁能告诉我正确的做法。谢谢 问题答案: 应该可以使用以下命令在特定的工作目录下调用可执行文件: 如下: 也许没有完整的途径 而不是硬编码,该路径也应该起作用,并且比您自己指定路径更安全/更干净,因为不能保证该 路径始终是所有设备的正确路径。 问题在于目录已针
我使用react-bootstrap-datetimerangepicker库和bind()从日历中获取选定的日期,但是这个库的“on apply”函数传递了两个参数(event、picker),在“预定义”中,我没有得到假定出现在第二个参数中的startDate和endDate。没有束缚它就不起作用 https://github.com/luqin/react-bootstrap-datetim