ChatGPT解决这个技术问题 Extra ChatGPT

如何在 Sublime Text 中选择具有多个光标的每一行?

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

谢谢。

你不想接受答案吗?

J
Joe Daley

查找:Ctrl+F 如果正则表达式尚未启用,请启用它们:Alt+R 键入表达式 .*\n.*\n 查找全部:Alt+Enter 按左箭头删除选择,只留下cursors: ← 您现在在每个奇数行的开头都有一个光标。如果您想要偶数行,请按下: ↓ 根据文件,文件底部可能缺少一个光标。使用鼠标(该死!)滚动到底部,按住 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 然后单击如下所示的图标来启用 RegEx 搜索: [ 。 * ]
C
Community

你可以轻松做到:

选择所有行或整个文档 Ctrl+A

添加多个选择器:Ctrl+Shift+L(在 Mac 中:Command + Shift + L)

编辑 :

或者使用带有 (.*(\n|$)){2} 表达式的出色 Joe Daley 方法


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

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

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

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

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

^.*\n.*$

R
Riccardo Marotti

您可以尝试使用插件: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})

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


哇,这看起来很有希望——我会尽快尝试的!
非常感谢!我对插件相当陌生。应该很有趣。开始能够选择每隔一行就太棒了。干杯!