一般来说,Sublime 可以配置为了解行注释和块注释之间的区别并采取相应的操作。但据我所知,这对于 XML 来说是无法完成的,因为它需要用注释字符来包装内容。
更具体地说,注释的配置选项指定 TM_COMMENT_START(用于纯行注释)或 TM_COMMENT_START 和 TM_COMMENT_END(用于块注释)。如果两者都存在,则切换命令会根据内容和上下文选择正确的一项。
对于 XML,由于 XML 中注释的工作方式,它使用一对,这意味着只能使用块注释。但是,当您在不进行任何选择的情况下调用该命令时,它会假定选择内容环绕整行。如果您有选择,那就是被包装的内容。
解决此问题的一种方法是在切换注释之前将您的选择分成几行。你可以通过以下方式做到这一点Selection > Split into Lines
从菜单(这还将显示该命令的键绑定)。
可以将这些命令分组到一个宏中,这样您就不必自己执行多个步骤。
这样的宏可能如下所示(保存在您的User
封装为XML_Line_Comment.sublime-macro
):
[
{
"command": "split_selection_into_lines"
},
{
"command": "toggle_comment",
"args": {"block": false}
},
{
"command": "single_selection"
},
{
"command": "move_to",
"args": {"extend": false, "to": "bol" }
}
]
这将分割选择,切换注释,然后返回到单个选择(并跳转到行的开头)。您可以根据需要进行修改(例如,如果您不想随后恢复为单一选择)。
您可以从菜单栏(Tools > Macros > User > XML_Line_Comment
),但更好的方法可能是设置键绑定。一个例子是:
{
"keys": ["ctrl+/"],
"command": "run_macro_file",
"args": { "file": "res://Packages/User/XML_Line_Comment.sublime-macro" },
"context": [
{ "key": "selection_empty", "operator": "equal", "operand": false},
{ "key": "selector", "operator": "equal", "operand": "text.xml"},
]
},
这将导致通常切换注释的键在 XML 文件中存在选择的特定情况下运行宏。