如何在 Sublime Text 3 中对齐正则表达式之间的表达式?
How to align expressions between alignment regex in Sublime Text 3?
我在 Sublime Text 3 中有以下两行:
Rectangle(Maxwell, "MagnetsWEstart" , "r_ta - h_pm", 42,"NdFe35", True, "WE")
Rectangle(Maxwell, "MagnetsWEend", "r_ta", 1984.42, "NdFe35",False, "WE")
而且我想将所有逗号和前面的文本向右对齐:
Rectangle(Maxwell, "MagnetsWEstart", "r_ta - h_pm", 42, "NdFe35", True, "WE")
Rectangle(Maxwell, "MagnetsWEend", "r_ta", 1984.42, "NdFe35", False, "WE")
我下载了 Align Tab 包并创建了键绑定
{ "keys": ["ctrl+shift+a"], "command": "align_tab", "args" : {"user_input" : ","} }
结果已经很接近我想要的了:
Rectangle(Maxwell , "MagnetsWEstart" , "r_ta - h_pm" , 42 , "NdFe35" , True , "WE")
Rectangle(Maxwell , "MagnetsWEend" , "r_ta" , 1984.42 , "NdFe35" , False , "WE")
但是我怎样才能使逗号之间的表达式向右对齐,并使逗号前添加的 space 变为红色?这甚至可能吗?
用Align Tab对齐后,匹配
[(,] *\K(.+?)( +)(?=,)
替换为
我找到了另一个解决方案。事实证明,对齐选项卡有一个内置选项,您可以将其添加到正则表达式中。只需按正则表达式对齐并键入 ,/r
。这意味着右对齐。
受 启发的以下步骤最终导致了预期的结果:
1) 安装 reg_replace and Align tab 包
2) 程序包:Reg_Replace -> 设置 -> 用户:
{
"replacements": {
"commaRightRegex": {
"find": "(\s,)",
"replace": ",",
"greedy": true,
"case": false
}
},
"selection_only": true,
}
3) 工具 -> 新插件 -> 包含 run_multiple.py
4) 键绑定 -> 用户 -> 添加:
{ "keys": ["ctrl+shift+a"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "align_tab", "args" : {"user_input" : ",/r"}},
{"command": "reg_replace", "args": {"replacements": ["commaRightRegex"]}}
]
}
}
这最终将通过一个键盘快捷键启用所需的输出:
Rectangle(Maxwell, "MagnetsWEstart", "r_ta - h_pm", 42, "NdFe35", True, "WE")
Rectangle(Maxwell, "MagnetsWEend", "r_ta", 1984.42, "NdFe35", False, "WE")
我在 Sublime Text 3 中有以下两行:
Rectangle(Maxwell, "MagnetsWEstart" , "r_ta - h_pm", 42,"NdFe35", True, "WE")
Rectangle(Maxwell, "MagnetsWEend", "r_ta", 1984.42, "NdFe35",False, "WE")
而且我想将所有逗号和前面的文本向右对齐:
Rectangle(Maxwell, "MagnetsWEstart", "r_ta - h_pm", 42, "NdFe35", True, "WE")
Rectangle(Maxwell, "MagnetsWEend", "r_ta", 1984.42, "NdFe35", False, "WE")
我下载了 Align Tab 包并创建了键绑定
{ "keys": ["ctrl+shift+a"], "command": "align_tab", "args" : {"user_input" : ","} }
结果已经很接近我想要的了:
Rectangle(Maxwell , "MagnetsWEstart" , "r_ta - h_pm" , 42 , "NdFe35" , True , "WE")
Rectangle(Maxwell , "MagnetsWEend" , "r_ta" , 1984.42 , "NdFe35" , False , "WE")
但是我怎样才能使逗号之间的表达式向右对齐,并使逗号前添加的 space 变为红色?这甚至可能吗?
用Align Tab对齐后,匹配
[(,] *\K(.+?)( +)(?=,)
替换为
我找到了另一个解决方案。事实证明,对齐选项卡有一个内置选项,您可以将其添加到正则表达式中。只需按正则表达式对齐并键入 ,/r
。这意味着右对齐。
受
1) 安装 reg_replace and Align tab 包
2) 程序包:Reg_Replace -> 设置 -> 用户:
{
"replacements": {
"commaRightRegex": {
"find": "(\s,)",
"replace": ",",
"greedy": true,
"case": false
}
},
"selection_only": true,
}
3) 工具 -> 新插件 -> 包含 run_multiple.py
4) 键绑定 -> 用户 -> 添加:
{ "keys": ["ctrl+shift+a"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "align_tab", "args" : {"user_input" : ",/r"}},
{"command": "reg_replace", "args": {"replacements": ["commaRightRegex"]}}
]
}
}
这最终将通过一个键盘快捷键启用所需的输出:
Rectangle(Maxwell, "MagnetsWEstart", "r_ta - h_pm", 42, "NdFe35", True, "WE")
Rectangle(Maxwell, "MagnetsWEend", "r_ta", 1984.42, "NdFe35", False, "WE")