在 Sublime Text 2 中,是否可以立即选择每隔一行(或奇数/偶数行)并在这些行上放置多个光标?
谢谢。
查找:Ctrl+F 如果正则表达式尚未启用,请启用它们:Alt+R 键入表达式 .*\n.*\n 查找全部:Alt+Enter 按左箭头删除选择,只留下cursors: ← 您现在在每个奇数行的开头都有一个光标。如果您想要偶数行,请按下: ↓ 根据文件,文件底部可能缺少一个光标。使用鼠标(该死!)滚动到底部,按住 Ctrl,然后单击缺少的光标应添加的位置。
你可以轻松做到:
选择所有行或整个文档 Ctrl+A
添加多个选择器:Ctrl+Shift+L(在 Mac 中:Command + Shift + L)
编辑 :
或者使用带有 (.*(\n|$)){2} 表达式的出色 Joe Daley 方法
我正在寻找一种在崇高中选择替代行的方法。
感谢 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
命令 (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})
最后一行只是删除选择,在所选行的开头留下多个光标。
(.*\n){10}
(.*(\n|$)){2}
(.*(\n|$)){2}
解决方案包括最后一行