如何在Sublime Text中选择具有多个游标的所有其他行?

use*_*580 152 sublimetext2

在Sublime Text 2中,是否可以立即选择其他(或奇数/偶数)行并在这些行上放置多个游标?

谢谢.

Joe*_*ley 361

  1. 发现:Ctrl+F
  2. 如果尚未启用正则表达式,请启用它们:Alt+R
  3. 输入表达式 .*\n.*\n
  4. 找到所有:Alt+Enter
  5. 按左箭头取消选择,只留下光标:
  6. 现在,您在每个奇数行的开头都有一个光标.如果您想要偶数行,请按下:
  7. 根据文件的不同,文件底部可能会丢失一个光标.使用鼠标(该死的!)滚动到底部,按住Ctrl,然后单击缺少光标应该添加到的位置.

  • 您还可以每10行使用`(.*\n){10}` (81认同)
  • [作为新的改进](http://stackoverflow.com/a/15598633/1238019):`(.*(\n | $)){2}` (21认同)
  • 太好了!@ zessx的`(.*(\n | $)){2}`解决方案包括最后一行 (3认同)
  • 请注意,在OS X 10.11.5上运行的Sublime 2中,RegEx搜索的快捷方式是Alt + Command + R.您还可以通过按Command + F然后单击如下所示的图标来启用RegEx搜索:[.*] (3认同)

zes*_*ssx 96

你可以轻松地做到:

  • 选择所有行或整个文档Ctrl+A
  • 添加多个选择器:Ctrl+ Shift+ L(在Mac中:Command + Shift + L)

编辑:

  • 虽然不是这个问题的正确答案,但这正是我想要的.感谢分享 (12认同)
  • 这个解决方案是我需要的,但不是OP想要的. (4认同)

小智 11

我正在寻找一种在崇高中选择备用线的方法.

感谢Joe Daley给出了一个非常好的答案.虽然我意识到,如果使用正则表达式,如果文件末尾没有换行符,则不会选择文件中的最后一行.

我想改进这个答案,但我现在似乎没有足够的声誉来评论上面的答案.

您可以在打开正则表达式的情况下使用以下搜索字符串,然后按alt + enter.接着是左箭头.这会将光标分别放在备用线上(与Joe Daley解释的步骤相同)

^.*\n.*$
Run Code Online (Sandbox Code Playgroud)


Ric*_*tti 7

您可以尝试使用插件: 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)
Run Code Online (Sandbox Code Playgroud)

将此文件保存在您的Packages/User.

然后,为该插件添加键绑定:

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }
Run Code Online (Sandbox Code Playgroud)

此命令将选择所有其他行.选择其他行后,可以使用Split selection into lines命令(Mac上的Ctrl+ Shift+ L,Cmd+ Shift+ L).

如果你想在一个快捷方式中拥有everythnig,你可以像这样修改插件:

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})
Run Code Online (Sandbox Code Playgroud)

最后一行仅用于删除选择,在选定行的开头留下多个游标.