Sublimetext2 ST2键映射:参数用于;展开“U选择”;
有人知道如何编辑Sublime Text 2中的“expand_selection”(展开选择)键映射,使其仅选择当前行,而不选择其后的换行符吗 默认键映射如下所示: {“keys”:[“ctrl+l”],“command”:“expand_selection”,“args”:{“to”:“line”} 问题是,当您选择行并开始用新代码替换它时,它后面的行将上移到当前行Sublimetext2 ST2键映射:参数用于;展开“U选择”;,sublimetext2,Sublimetext2,有人知道如何编辑Sublime Text 2中的“expand_selection”(展开选择)键映射,使其仅选择当前行,而不选择其后的换行符吗 默认键映射如下所示: {“keys”:[“ctrl+l”],“command”:“expand_selection”,“args”:{“to”:“line”} 问题是,当您选择行并开始用新代码替换它时,它后面的行将上移到当前行 我假设您将“args”部分中的“line”替换为其他内容,但我似乎在任何地方都找不到该文档。我也找不到任何不选择下一行而选择当
我假设您将“args”部分中的“line”替换为其他内容,但我似乎在任何地方都找不到该文档。我也找不到任何不选择下一行而选择当前行的示例/文档。幸运的是,我们可以发出这样的命令
User/my_utilities.py
。我把所有随机开发的ST命令都放在这里import sublime, sublime_plugin
class MyExpandSelectionToLine(sublime_plugin.TextCommand):
def run(self, edit):
regions = []
for s in self.view.sel():
line = self.view.line(sublime.Region(s.begin(), s.end()))
if line.end() == s.end():
# we're at the end of a line, so select the next line
line = self.view.line(sublime.Region(s.end(), s.end() + 1))
regions.append(line)
for r in regions:
self.view.sel().add(r)
`{ "keys": ["super+l"], "command": "my_expand_selection_to_line" }`
[“ctrl+l”]
而不是[“super+l”]
这将覆盖默认的命令绑定,用于选择一行来运行我们刚刚编写的新命令。Matt的解决方案非常有效,另一个选项是录制宏并将其分配给
ctrl+l
。这样做的另一个好处是只选择第一个代码字符,因此新行缩进的级别与要替换的行相同
下面是宏:
[
{
"args":
{
"extend": false,
"to": "bol"
},
"command": "move_to"
},
{
"args":
{
"extend": true,
"to": "eol"
},
"command": "move_to"
}
]
这将保存为\Packages\User
(Windows)中的MacroName.sublime-macro
这是关键地图:
{ "keys": ["ctrl+l"], "command": "run_macro_file", "args": {"file": "Packages/User/MacroName.sublime-macro"} }
由于这会取消通过重复ctrl+l
来选择其他行的功能,因此我还将expand\u selection
命令移动到ctrl+shift+l
(这会覆盖split\u selection\u into\u lines
):
因此,现在要选择当前行,请选择ctrl+l
,然后要将选择扩展到下面的行,请按ctrl+shift+l
,按任意行数。将此添加到我的“键绑定-用户”中为我做到了:
{ "keys": ["shift+end"], "command": "move_to", "args": {"to": "hardeol", "extend": true} }
信用证:为了补充您的答案,以下是扩展选项的可用参数:
bol、hardbol、eol、hardeol、bof、eof、方括号、行
。这里的更多信息:嗯。这些对我都不起作用:bol,hardbol,eol,hardeol,bof,eof
。但是,有几个选项没有记录在案,它们确实起作用:缩进、标记
。我也在默认键绑定中找到了scope
,但无法使其正常工作。我和Matt在“eol”、“hardeol”等方面有相同的问题,但命令链接是一个很好的参考——感谢发布。有趣。嗯,非官方文档是开源的,可以在github上找到:因此,如果您发现任何错误,请随时发送包含更改的pull请求。现在我们有了官方文档:展开选择的参数:行
,字
,范围
,括号
{ "keys": ["shift+end"], "command": "move_to", "args": {"to": "hardeol", "extend": true} }