【问题标题】:Column/Vertical selection with Keyboard in SublimeText 3在 Sublime Text 3 中使用键盘进行列/垂直选择
【发布时间】:2014-09-24 23:12:31
【问题描述】:

我在 Mac 上。我在 Sublime Text 3 中有 7 列,每列 300 行。如果可能,我想使用单个键盘快捷键仅选择第 4 列。

不合适的选项

  • ctrl + shift + up/down
  • alt + mouse + drag
  • ctrl + alt + up/down。 (这实际上没有任何作用,也没有出现在我的控制台会话中,也不是单个键盘快捷键)。
  • 我也不希望仅仅为此使用 VI/VIM 模式,因为它不是我工作流程的常规部分

我尝试过的:

  • 宏:但不够具体。
  • 使用command 和'page down' 与ctrl 和'shift`:运气不好
  • SublimeText 3 Column-Select 插件:似乎不适合我

我理想的解决方案是我的光标可以放在列中的任何位置,然后我会点击一个快捷方式(例如 ctrl-alt-shift-a),它会选择整个列。

这是一个例子:

约翰·萨利·本森玛丽亚·帕特里克·萨曼莎·马丁

西蒙·凯特·凯莉·德洛雷斯约书亚·塞缪尔·伊丽莎

我想一键选择包含 Maria 和 Delores 的列。由于各种原因(剪切/粘贴、更改大小写、追加、添加引号、运行宏等),我经常执行此操作,因此需要快速且可重复的操作。

我该怎么做?

【问题讨论】:

标签: keyboard-shortcuts sublimetext3


【解决方案1】:

你应该看到Sublime Column Selection:

使用鼠标

每个平台使用不同的鼠标按钮:

操作系统

  • 鼠标左键 +
  • 或:鼠标中键

  • 添加到选择:

  • 从选择中减去:+

窗口

  • 鼠标右键 + Shift
  • 或:鼠标中键

  • 添加到选择:Ctrl

  • 从选择中减去:Alt

Linux

  • 鼠标右键 + Shift

  • 添加到选择:Ctrl

  • 从选择中减去:Alt

使用键盘

操作系统

  • Ctrl + Shift +
  • Ctrl + Shift +

窗口

  • Ctrl + Alt +
  • Ctrl + Alt +

Linux

  • Ctrl + Alt +
  • Ctrl + Alt +

【讨论】:

  • Windows 注意:对于使用某些显卡 (Intel) 的用户,有热键设置会导致 Ctrl + Alt + Down 旋转您的屏幕。您需要禁用这些热键才能在 Windows 上运行。 Ctrl+Alt+F12 > Options > Uncheck "Enable Hot Keys"
  • 问题指定没有鼠标,并且应该一次性选择整个列。这个答案不符合。
  • 在 Linux Mint 上,Ctrl + Alt + Up/Down 对我不起作用。改用Alt + Shift + Up/Down
  • 我在 macosx 上使用 sublime3 并进入列模式,我像往常一样选择部分文本,但随后我按下快捷方式“在所选内容的每一行上放置一个小括号”: + SHIFT + L
  • 在 Ubuntu 16.04 上,Ctrl + Alt + Up/Down 切换虚拟工作区。 Alt + Shift + Up/Down,正如上面 becko 所说,有效。
【解决方案2】:

Mac 的 sublime 文档快捷方式不起作用的原因是它们与其他 Mac 功能的快捷方式相关联,例如任务控制、应用程序 Windows 等。 解决方案: 转到系统偏好设置 -> 键盘 -> 快捷方式,然后取消选中任务控制和应用程序窗口的选项。 现在尝试“Control + Shift [+箭头键]”来选择所需的文本,然后将光标移动到所需的位置而无需单击任何鼠标,以便将所选内容以正确的缩进粘贴到所需的位置。

【讨论】:

  • 应在“正确答案”中注明。也很烦人的快捷方式与设置不完全匹配。即:在“快捷方式”中看起来就像i.imgur.com/v5tm9Tl.png
【解决方案3】:

在我的情况下(Linux)是 alt+shift up/down

 { "keys": ["alt+shift+up"], "command": "select_lines", "args": {"forward": false} },
 { "keys": ["alt+shift+down"], "command": "select_lines", "args": {"forward": true} },    

【讨论】:

  • 这会一次性选择整列吗?
【解决方案4】:

SublimeText 3 Column-Select plugin 应该是您所需要的。安装它,然后确保您的“默认(OSX).sublime-keymap”文件中有以下内容:

    // Column mode
    { "keys": ["ctrl+alt+up"], "command": "column_select", "args": {"by": "lines", "forward": false}},
    { "keys": ["ctrl+alt+down"], "command": "column_select", "args": {"by": "lines", "forward": true}},
    { "keys": ["ctrl+alt+pageup"], "command": "column_select", "args": {"by": "pages", "forward": false}},
    { "keys": ["ctrl+alt+pagedown"], "command": "column_select", "args": {"by": "pages", "forward": true}},
    { "keys": ["ctrl+alt+home"], "command": "column_select", "args": {"by": "all", "forward": false}},
    { "keys": ["ctrl+alt+end"], "command": "column_select", "args": {"by": "all", "forward": true}}

究竟是什么不适合你?

【讨论】:

  • 它没有选择整列。只能让它逐行向上或向下进行增量选择。
  • 查看我关于 Default (OSX).sublime-keymap 文件的更新
  • 下面两个(有 home 和 end)是我感兴趣的,但它似乎不起作用。
  • 假设您没有覆盖插件中的键盘映射, ctrl+alt+home 应该选择光标的当前列直到文件的第一行。也就是说,如果您将光标放在第 3 行第 3 列并按 ctrl+alt+home,您应该会看到从第 3 行第 3 列到第 1 行第 3 列的行。按 ctrl+alt+home再次应该返回到第 3 行第 3 列。点击 ctrl+alt+end 对文件的最后一行执行相同的操作。然后使用标准选择键选择您的文本。
【解决方案5】:

应该这样做:

  1. Ctrl+A - 全选。
  2. Ctrl+Shift+L - 将所选内容分成几行。
  3. 然后用left/right移动所有光标,用Shift+left/right选择。将所有光标移动到带有Home 的行首。

【讨论】:

    【解决方案6】:

    对于 macOS,您无需安装任何插件或鼠标。 就这样做:- Ctrl+Shift+Down

    【讨论】:

    • 文森特,ctrl+shift+down 一次选择一个。问题很明显,它需要一次选择整个列。
    • 谢谢你!我禁用了任务控制,现在我可以进行块选择
    【解决方案7】:

    好的,这是我发现的满足所有要求的最佳解决方案:

    1. 下载Sublime-Text-Advanced-CSV Sublime 插件并安装。
    2. 通过“CSV:设置分隔符”命令为列指定分隔符(默认为“,”)。
    3. 点击“ctrl + , s”(或从命令面板中选择),您的列将被选中。

    无需鼠标交互。

    【讨论】:

      【解决方案8】:

      评论只是为了让人们可以找到预期问题的解决方案。

      你可以做你想做的事,但它不如 Notepad++ 好,但它可能适用于足够体面的小型解决方案。

      在崇高的情况下,如果您按住 ctrl 或 mac equiv.,然后用鼠标在单行上选择您想要的单词/字符并仍然按住 ctrl 转到另一行并在该行上选择您想要的单词/字符将是附加的,您将建立您的选择。我主要使用 notepadd++ 作为我的提取器和数据清理和 sublime 用于实际开发。

      另一种方法是,如果您的列完全对齐,您只需在 windows 上单击鼠标中键或在 mac 上单击 option + 单击,这样您就可以在文本行内以方形方式选择文本,列。

      【讨论】:

      • 问题是只有一个键盘快捷键选项(没有鼠标,没有拖动),可以在 Mac 上一次选择整个列。
      【解决方案9】:

      我知道 notepad++ 有一个功能,可以让您通过按住 control + alt + 拖动来选择独立于行/列的文本块。因此,您几乎可以选择任何您想要的文本块。

      【讨论】:

      • Notepad++ 仅适用于 Windows,OP 在 Mac 上。您还会注意到 OP 明确表示这不是一个选项...
      • 在 Linux 中 Shift + 鼠标右键(不是左键)。
      • @MattDMo Notepad++ 在 Wine 上运行良好。我从 Notepad++ 迁移到 Geany&SublimeText,这个功能是我寻找的第一个功能。 Geany 通过Ctrl+Alt+Left Mouse 选择做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      相关资源
      最近更新 更多