21

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

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

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

4

5 回答 5

36

如果我正确理解了您的问题,您可以使用以下键(以 OS X 键绑定为例):

  1. Ctrl + Shift + Up 或 Ctrl + Shift + Down 在多行中选择一列。
  2. Cmd + Shift + Right(其他操作系统上的 Shift + End)将选择范围扩展到每行的末尾。

所有操作系统的相关键绑定:http: //www.sublimetext.com/docs/2/column_selection.html

于 2012-08-02T09:05:20.637 回答
10

我来到这个答案是因为我正在搜索如何将光标放在所有行中,直到 EOF(文件结尾)而不使用ctrl+ alt+▲</kbd>/▼</kbd> (not pratical for more than a few dozens of lines), so I could trim or select a specific part of those lines.

所以我最终在我发现的崇高文本文档中结束了:

  • ctrl++这会将光标放置在所有选定的行中并在它们的末尾(EOL) shiftL
    • ctrl用+选择那些行L(或ctrl+ shift+End选择直到 EOF);
    • ctrl+ shift+L在 EOL 处添加光标;
    • ctrl现在您可以通过+的单词同时移动所有光标◄</kbd>/►</kbd> or to the BOLs/EOLs with Home/End), if you also press shift you will select while moving them;
  • 但最有用的功能绝对是鼠标中键+拖动,它选择线条并同时将光标放在这些选择的末尾:
    • 奖励:如果您只想将光标放在 EOL 上(不选择),请单击背景(在 EOL 之后)并拖动!(如果线条太长,您可以使用小地图将您的视图屏幕定位在最长的线条处);
    • ctrl现在您可以通过+的单词同时移动所有光标◄</kbd>/►</kbd> or to the BOLs with Home), if you also press shift you will select while moving them.
于 2015-11-25T17:15:11.313 回答
3

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

  1. 通过 Shift + Up/Down 选择行
  2. 将选择分割成行(选择):Cmd + Shift + L
于 2012-08-03T01:27:41.853 回答
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()))
于 2013-03-14T08:44:17.217 回答
2

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

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

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

我对它所做的唯一改变就是改变

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

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

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

于 2014-03-26T10:29:03.120 回答