【问题标题】:In Sublime Text 2, how to select beginning and end of selected block?在 Sublime Text 2 中,如何选择选定块的开头和结尾?
【发布时间】:2012-07-19 15:05:08
【问题描述】:

Sublime Text 的old docs 有这个诱人的注释:

给定一个选定的文本块,Ctrl+Shift+K 将把它分成两个选择,一个用于每一端。

这会很方便,但它在 Sublime Text 2 中不起作用,至少在我的 Mac 上不起作用。 (相反,击键会删除当前行。)

我知道将任何 Sublime 命令映射到任何击键都很容易,但是尽管环顾四周,我还是找不到 split-selected-block-into-start-and-end-selections 的命令。

那么,这个命令是什么?否则我该怎么做?

【问题讨论】:

  • 还是什么都没有——这可能很容易做成一个包。我不知道任何 Python,但我可能会尝试破解它,因为我真的很喜欢这个功能 - 想象一下通过拆分选择并按 Enter 将一段文本从内联变为块。如果与另一个插件结合使用,例如 shift+esc 以仅使用您的 last 编辑光标,它还会使编辑任意标签快得多。

标签: sublimetext sublimetext2


【解决方案1】:

虽然我知道这个问题现在已经有一年多了,但我认为这是一个非常理想的功能。我还没有为此创建一个包,但我确实创建了一个插件来解决这个问题。在您的Sublime Text 2/Packages/User 目录中创建一个 Python 文件(建议名称:selections.py),并复制以下代码。

import sublime, sublime_plugin

def split_selection_to_begin_end(view):
    new_sel = []
    for s in view.sel():
        if not s.empty():
            new_sel.append(sublime.Region(s.a))
            new_sel.append(sublime.Region(s.b))
        else:
            new_sel.append(s)

    view.sel().clear()
    for s in new_sel:
        view.sel().add(s)


class SplitSelectionToBeginEndCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        split_selection_to_begin_end(self.view)

我决定将它的按键设置为Ctrl+Shift+;,因为它很方便,并且没有映射到我安装的任何软件包中的任何内容。添加这个或类似于您的 User/Default (OS).sublime-keymap 文件的内容。

[
    { "keys": ["ctrl+shift+;"], "command": "split_selection_to_begin_end" }
]

【讨论】:

    【解决方案2】:

    在 OS X 上使用 Ctrl+Shift+LCommand+Shift+L,更多详情请参阅 - Multiple Selection with the Keyboard

    【讨论】:

    • 嘿,谢谢,但这不是我要找的。 Command+Shift+L 用于选择多行块中的每一行。我正在寻找选择块的开头和结尾,正如我喜欢的旧文档中所引用的那样(但在您链接到的新文档中没有)。
    【解决方案3】:

    似乎这已在 ST2 中删除。看看这个要点有 ST2 的快捷方式列表:Sublime Text 2 – Useful Shortcuts (Mac OS X)

    【讨论】:

    • 说不是这样!如果是这样,那肯定可以解释为什么在任何地方都没有提到它……但我希望它仍然作为命令存在,如果不是作为默认键绑定的话。
    • 您可以在Packages/Default/Default.sublime-commands 中找到完整的 ST 命令列表。
    • 嗯...该文件对我来说并不详尽——而且无论如何都没有关于我正在寻找的命令的任何内容。
    【解决方案4】:

    不知道快捷键,但是你可以在块的开头和结尾做CTRL+左键单击(鼠标)。

    【讨论】:

    • 我刚刚注意到您可以选择(突出显示)任何内容并开始输入,它会在所选文本的开头和结尾添加您的文本。
    • 也许我理解错了,但对我来说,选择一个块然后键入会用您键入的任何内容(根据需要)替换该块。
    • 感谢有关 Ctrl+Click 添加更多选择的说明(在 OS X 上是 Command+Click)。这绝对是一个很棒的 Sublime 功能。但仍然不是我想要的。
    • 你是对的,我的错,它只适用于特殊字符,例如双引号 :(
    猜你喜欢
    • 1970-01-01
    • 2012-07-13
    • 2015-01-31
    • 2013-09-26
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    相关资源
    最近更新 更多