181

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

谢谢。

4

4 回答 4

436
  1. 查找:Ctrl+F
  2. 如果正则表达式尚未启用,请启用它们:Alt+R
  3. 输入表达式.*\n.*\n
  4. 查找所有:Alt+Enter
  5. 按向左箭头删除选择,只留下光标:←</kbd>
  6. 您现在在每条奇数行的开头都有一个光标。如果您想要偶数行,请按下:↓</kbd>
  7. 根据文件的不同,文件底部可能缺少一个光标。使用鼠标(该死!)滚动到底部,按住Ctrl,然后单击缺少的光标应添加的位置。
于 2013-04-29T07:52:13.467 回答
102

你可以轻松做到:

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

编辑 :

于 2013-03-24T12:47:32.537 回答
14

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

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

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

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

^.*\n.*$
于 2014-06-03T08:57:20.440 回答
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)

将此文件保存在您的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})

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

于 2013-03-24T17:30:52.093 回答