visual-studio-code - VS Code:基于状态的块注释/取消注释
问题描述
我在 Geany 中经常使用的一个功能是“基于状态”的块注释/取消注释,其中选定块中的注释行切换为未注释,未注释的行切换为注释。Geany 使用修改后的注释代码“#~”(在 python 中),因此它可以跟踪编辑器注释掉的行,而不是代码中的真正注释。
x = 1
#~ x = 2
y = 3
#~ y = 4
在 geany 中,突出显示整个块并按 Ctrl-e 给出
#~ x = 1
x = 2
#~ y = 3
y = 4
有没有办法在 VS Code 中获得类似的行为?
解决方案
您可以使用扩展替换规则
将此添加到您的settings.json
"replacerules.rules": {
"Toggle Comment #~": {
"find": ["^([ \\t]*)#~ (.*)$", "^([ \\t]*)(?=[^ \\t])(?!#@# )(.*)$", "^([ \\t]*)#@# (.*)$"],
"replace": ["$1#@# $2", "$1#~ $2", "$1$2"]
}
}
由于查找替换是按顺序完成的,因此您必须使用状态注释 ( #~
) 标记行以删除步骤 3 中的注释。
*
第 2 步模拟空白的贪婪非回溯
对于其他注释样式,您必须复制此规则。
您可以将其添加到键绑定:
{
"key": "ctrl+e",
"command": "replacerules.runRule",
"when": "editorTextFocus && !editorReadonly",
"args": {
"ruleName": "Toggle Comment #~"
}
}
推荐阅读
- git - 如何有效地做 git rebase
- javascript - 如何防止 Firefox 的站内搜索弹出?
- java - jshell 脚本是否支持 schebang?
- firebase - 在客户端使用 firebase.auth() 的问题
- javascript - 在 React.js 中,为什么我们不必为事件处理函数传递参数?
- python - 使用外部 excel 文件更改熊猫数据框中的列值
- c# - InvalidOperationException Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.CreateModel(ModelBindingContext bindingContext)
- python - 我的注册表单不适用于 django python
- angular - Google Places Autocomplete 不返回某些类型的结果
- pointers - 为什么我会得到无效的内存地址或 nil 指针取消引用?