在 Sublime Text 2 中,是否可以立即选择每隔一行(或奇数/偶数行)并在这些行上放置多个光标?
谢谢。
.*\n.*\n
你可以轻松做到:
编辑 :
(.*(\n|$)){2}
表达我正在寻找一种在崇高中选择替代行的方法。
感谢 Joe Daley 提供了一个非常好的答案。虽然我意识到,如果你使用正则表达式,如果文件末尾没有换行符,它不会选择文件中的最后一行。
我想改进该答案,但目前我似乎没有足够的声誉来评论上述答案。
您可以在打开正则表达式的情况下使用以下搜索字符串,然后按 alt+enter。随后是一个左箭头。这会将每个光标放在交替行上(与 Joe Daley 解释的步骤相同)
^.*\n.*$
您可以尝试使用插件:Tools/New Plugin...
import sublime_plugin
class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.window().run_command("expand_selection", {"to": "line"})
start_region = self.view.sel()[0]
self.view.window().run_command("select_all")
self.view.sel().subtract(start_region)
将此文件保存在您的Packages/User
.
然后,为该插件添加键绑定:
{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }
此命令将选择所有其他行。当您选择了其他行时,您可以使用Split selection into lines
命令(在 Mac 上是Ctrl++ 、Shift++ ) 。LCmdShiftL
如果你想在一个快捷方式中拥有所有东西,你可以像这样修改插件:
import sublime_plugin
class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.window().run_command("expand_selection", {"to": "line"})
start_region = self.view.sel()[0]
self.view.window().run_command("select_all")
self.view.sel().subtract(start_region)
self.view.window().run_command("split_selection_into_lines")
self.view.window().run_command("move", {"by": "characters", "forward": False})
最后一行只是删除选择,在所选行的开头留下多个光标。