【问题标题】:How can I select every other line with multiple cursors in Sublime Text?如何在 Sublime Text 中选择具有多个光标的每一行?
【发布时间】:2013-03-13 23:26:26
【问题描述】:

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

谢谢。

【问题讨论】:

  • 您不想接受答案吗?

标签: sublimetext2 sublimetext


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

【讨论】:

  • 也可以每10行使用(.*\n){10}
  • As a new improvement : (.*(\n|$)){2}
  • 不错! @zessx 的(.*(\n|$)){2} 解决方案包括最后一行
  • 请注意,在 OS X 10.11.5 上运行的 Sublime 2 中,RegEx 搜索的快捷键是 Alt + Command + R。您也可以通过按 Command + F 然后单击看起来像这样的图标:[ .* ]
【解决方案2】:

你可以轻松做到:

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

编辑:

【讨论】:

  • 虽然不是这个问题的正确答案,但这就是我想要的。感谢分享
  • 伟大而简单的提示!
  • 这个解决方案是我需要的,但不是 OP 想要的。
【解决方案3】:

我正在寻找一种在 sublime 中选择替代行的方法。

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

我想改进该答案,但目前我似乎没有足够的声誉来评论上述答案。

您可以在打开正则表达式的情况下使用以下搜索字符串,然后按 alt+enter。随后是一个左箭头。这会将每个光标放在交替行上(与 Joe Daley 解释的步骤相同)

^.*\n.*$

【讨论】:

    【解决方案4】:

    你可以试试插件: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 命令(Ctrl+Shift+L, Cmd +Shift+L 在 Mac 上)。

    如果你想把所有东西都放在一个快捷方式中,你可以像这样修改插件:

    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})
    

    最后一行只是删除选择,在所选行的开头留下多个光标。

    【讨论】:

    • 哇,这看起来很有希望 - 我会尽快尝试!
    • 非常感谢!我对插件相当陌生。应该很有趣。开始能够选择每隔一行就太棒了。干杯!
    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2013-02-04
    • 2016-01-30
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多