Sublime text 2 - 列选择直到行尾

时间:2012-08-02 08:56:27

标签: select shortcuts sublimetext2

有没有办法用键盘快捷键选择列并将选择范围扩展到每行的末尾?

目前,当光标到达行尾时,它会跳转到下一行的开头。

如何在不使用鼠标的情况下避免此行为?

5 个答案:

答案 0 :(得分:30)

如果我已正确理解您的问题,您可以使用以下键(使用OS X键绑定的示例)执行此操作:

  1. Ctrl + Shift +向上或Ctrl + Shift +向下选择多行中的列。
  2. Cmd + Shift + Right(Shift + End在其他操作系统上)以将选择范围扩展到每行的末尾。
  3. 所有操作系统的相关键绑定: http://www.sublimetext.com/docs/2/column_selection.html

答案 1 :(得分:7)

我来到这个答案是因为我正在搜索如何将光标放在所有行中直到EOF(文件结尾)而不使用 ctrl + alt + / (对于超过几十行来说并不实用),所以我可以修剪或选择这些行的特定部分。

所以我最终进入了我发现的sublime text documentation

  • ctrl + shift + L 将光标放在所选的所有行中以及它们的末尾(EOL):
    • 选择 ctrl + L (或 ctrl + shift + End 选择直到EOF);
    • ctrl + shift + L 在EOL中添加游标;
    • 现在您可以通过 ctrl + / 的单词同时移动所有游标,或者通过移动到BOL / EOL主页 / 结束),如果你也按 shift ,你会在移动时选择;
  • 但最有用的功能绝对是鼠标的中间点击+拖动,它会选择行并同时将光标放在这些选择的末尾:
    • 奖励:如果您只想将光标放在EOL(未选择),请单击背景(在EOL之后)并拖动! (如果线太长,您可以使用小地图将视图屏幕定位在最长的线上);
    • 现在你可以用 ctrl + / 的单词同时移动所有游标,或者用 Home <移动到BOL / kbd>),如果你也按 shift ,你会在移动时选择。

答案 2 :(得分:3)

您还可以通过以下步骤获得相同的结果:

  1. 按Shift +向上/向下选择行
  2. 将选择分割成行(选择):Cmd + Shift + L

答案 3 :(得分:2)

import sublime, sublime_plugin

class SelectToEndoflineCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        caretPos = self.view.sel()[0].begin()
        self.view.sel().add(sublime.Region(caretPos, self.view.line(caretPos).end()))

class SelectToBegoflineCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        caretPos = self.view.sel()[0].begin()
        self.view.sel().add(sublime.Region(caretPos, self.view.line(caretPos).begin()))

答案 4 :(得分:2)

robertcollier4的回答为我解决了这个问题。出于某种原因,在Sublime Text 3中覆盖了super + shift + right默认OSX键绑定,并且无法在用户键绑定中正确解除绑定。

要将罗伯特的代码添加为插件,请转到Tools > New Plugin,粘贴代码,保存代码并在键盘映射中添加对它的引用:

[
    { "keys": ["super+shift+right"], "command": "SelectToEndoflineCommand" }
]

我对它做出的唯一改变是改变

caretPos = self.view.sel()[0].begin()

caretPos = self.view.sel()[0].end()

用于EOL功能,否则它将无法正确用于多行选择。