Visual studio code 我可以在vscode中定义替换操作的任务吗?
我替换每个Visual studio code 我可以在vscode中定义替换操作的任务吗?,visual-studio-code,Visual Studio Code,我替换每个调试器在我的解决方案中使用“”的短语每天数次。我认为如果有一种方法可以定义此操作的任务,那就更好了。 你知道解决办法吗。是否有此功能?您需要一个宏扩展,例如。它将允许您将命令链接在一起,以使用一个键绑定运行 在您的settings.json中: { "command": "multiCommand.removeDebugger", // "interval": 250, "sequence": [ "workbench.action.findInFiles",
调试器代码>在我的解决方案中使用“”的短语每天数次。我认为如果有一种方法可以定义此操作的任务,那就更好了。
你知道解决办法吗。是否有此功能?您需要一个宏扩展,例如。它将允许您将命令链接在一起,以使用一个键绑定运行
在您的settings.json中:
{
"command": "multiCommand.removeDebugger",
// "interval": 250,
"sequence": [
"workbench.action.findInFiles",
// "toggleSearchRegex", // depending if the default is regex on or off
// and where you want it to end up
"search.action.refreshSearchResults",
"workbench.action.replaceInFiles",
"search.focus.nextInputBox",
"editor.action.clipboardCutAction",
"search.action.replaceAll"
]
},
这将打开“在文件中查找”面板。然后,它将运行命令,在文件中实际搜索所选字符串(这是执行替换之前的必要步骤)。然后,它将移动到“替换输入框”,清除其内容(因为您希望不使用任何内容替换“调试器;”),然后运行“在所有文件中替换”命令。如果您真的想这样做,VSCode将提示您
在您的keybindings.json中放置一些您选择的keybinding,例如:
{
"key": "ctrl+alt+u",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.removeDebugger" }
},
唯一的要求是突出显示要首先搜索的短语-在您的示例中是debugger代码>-然后用Ctrl-Alt-U或其他方式触发它
这是它工作的演示gif——我把它的速度放慢了,这样就可以看到它在执行以下步骤:
。gif软件在按键时是不稳定的-它只是Ctrl-Alt-U。我为这个任务创建了一个。它在windows和mac上注册绑定到ctrl+alt+shift+d
和ctrl+cmd+shift+d
的命令Remove Debugger Statements
,以执行所需操作
此外,它还必须在执行操作时指定要包括/排除的文件/文件夹。您的意思是只查找和替换吗?选择一个调试器;Ctrl-Shift-L将选择全部,然后删除。还是你在找别的东西?你真的用“”替换了吗?两个引号?实际上我想做和你说的一样的工作,但是在一个项目的所有文件中。。你知道有什么解决办法吗?我想定义一个任务来查找replaceall调试器代码>是一个很好的方法,但我不知道怎么做。我有一个宏解决方案-你想替换调试器;什么都没有?是的。我想这么做。不幸的是,这对我不起作用。实际上,它在第二个输入(替换输入)中停止。我上传了一张这张图片,让你直观地看到我的想法。谢谢我的朋友。那个“type”命令不应该在那里-我复制了错误的东西。现在试试看。它显然还需要250毫秒的延迟间隔选项。实际上我认为它不需要延迟,但在更改设置后重新加载vscode。我编辑了上面的宏。非常感谢。现在可以了,但我有一个问题(或要求)!我们是否可以使用命令来选择调试器代码>和提示窗口中用于选择替换选项的命令?!:)实际上,我喜欢把步骤减少到一个步骤(一条捷径)。例如,我可以通过ctrl+alt+u
来完成所有这些步骤;它不会删除调试器代码>当它周围没有空间时。例如,如果我编写调试器代码>在行尾,它不会删除它。或者如果我写constructor(){debugger;}
它不会删除它。但最终你的解决方案非常好。@alihasani谢谢你的反馈。我会在有时间的时候尽快研究这些情况,并会更新您。@alihasani我已经更新了扩展,以使调试器语句与其他代码匹配,并专门删除它们。否则,如果调试器语句位于单独的一行上,则它将与整行一起删除。您可以查看一下,如果还有其他可能的重要事项,请告诉我。非常感谢。现在问题已经解决了,但我看到了一个新问题:当调试器时代码>位于单独的一行中,它将与整行一起删除,但下一行(位于调试器;
开启后的一行)将出现在前一行的末尾。@alihasani您是否使用版本0.0.6,因为它应该解决您提到的确切问题。它应该只删除包含调试器的行;除非下一行仅包含换行符/回车键,否则不在其上显示下一行。