SublimeText 3中使用键盘进行的列/垂直选择


72

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

不适当的选择

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

我尝试过的

  • 宏:但这还不够具体。
  • 和'shift command'一起使用和'page down' ctrl:没有运气
  • SublimeText 3 Column-Select插件:似乎对我不起作用

我的理想解决方案是将光标放置在列中的任何位置,然后单击快捷键(例如ctrl-alt-shift-a),然后选择整个列。

这是一个例子:

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

西蒙·凯特·凯里·德洛雷斯Joshua Samuel Eliza

我想通过一次按键选择与Maria和Delores在一起的栏。我经常执行此操作,因此出于各种原因(剪切/粘贴,更改大小写,追加,添加引号,运行宏等),因此希望快速且可重复。

我该怎么做?


我在此线程中找不到满意的答案。我确实在这里找到了一个:stackoverflow.com/questions/10080202/…–
marvin

Answers:


155

您应该看到Sublime Column Selection

使用鼠标

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

OS X

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

  • 添加到选择:

  • 从选择中减去:+

视窗

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

  • 添加到选择: Ctrl

  • 从选择中减去: Alt

的Linux

  • 鼠标右键+Shift

  • 添加到选择: Ctrl

  • 从选择中减去: Alt

使用键盘

OS X

  • Ctrl+ Shift+
  • Ctrl+ Shift+

视窗

  • Ctrl+ Alt+
  • Ctrl+ Alt+

的Linux

  • Ctrl+ Alt+
  • Ctrl+ Alt+

42
Windows注意:对于使用某些图形卡(Intel)的人,有一些HotKeys设置可导致Ctrl + Alt + Down屏幕旋转。您需要禁用这些热键才能在Windows上运行。 Ctrl+Alt+F12 > Options > Uncheck "Enable Hot Keys"
L_7337 '16

3
没有鼠标就可以指定问题,并且应该一次选择整个列。这个答案不符合要求。
user2544542 16-10-18

16
在Linux Mint上,Ctrl + Alt + Up/Down对我不起作用。使用Alt + Shift + Up/Down代替。
becko

2
我在macosx上使用sublime3并进入列模式,我照常选择了一部分文本,但是随后我按了一个快捷方式“在选择的每一行上放置一个字型”:+ SHIFT+L
isaias-b

2
在Ubuntu 16.04上,Ctrl + Alt + Up/Down切换虚拟工作区。Alt + Shift + Up/Down就像becko所说的那样有效。
Tor Klingberg '18

25

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


应在“正确答案”中注明。也很烦人的快捷方式在设置中不完全匹配。即:在“快捷方式”中看起来就像i.imgur.com/v5tm9Tl.png
温伯特'17

14

就我而言(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} },    

这会一次选择整个列吗?
user2544542 '02

8

SublimeText 3列选择插件应该是你所需要的。安装该文件,然后确保在“ Default(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}}

到底什么对您不起作用?


它没有选择整个列。仅能使其逐行向上或向下进行增量选择。
user2544542

请参阅我有关Default(OSX).sublime-keymap文件的更新
DrStrangepork 2015年

最下面的两个(包括首页和结尾)是我感兴趣的,但是它似乎不起作用。
user2544542'1

假设您没有覆盖插件中的按键映射,则ctrl + alt + home应该选择光标的当前列,直到文件的第一行。这就是说,如果将光标放在第3行第3列中并按ctrl + alt + home,则应该看到一行从第3行第3列到第1行第3列。同样,您应该回到第3行第3列。按ctrl + alt + end可以对文件的最后一行执行相同的操作。然后使用标准选择键选择文本。
DrStrangepork '16

5

应该这样做:

  1. Ctrl+A - 全选。
  2. Ctrl+Shift+L -将选择分成几行。
  3. 然后使用移动所有光标left/right,使用选择Shift+left/right。将所有光标移到以开始Home

3

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


Vincent,按Ctrl + Shift +向下键一次选择一个。问题很明显,它需要立即选择整个列。
user2544542 '02

谢啦!我禁用了任务控制,现在我可以进行块选择了
Leo Gasparrini

2

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

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

无需任何鼠标交互。


0

评论只是为了使人们可以解决预期的问题。

您可以执行所需的操作,但是它不如Notepad ++好,但是它可能足够适合小型解决方案。

在sublime中,如果您按住ctrl或mac equiv。,并用鼠标在一行中选择您想要的单词/字符,同时仍然按住ctrl,则转到另一行并在该行上选择您想要的单词/字符,它将是可加性的然后您将建立选择。我主要使用notepadd ++作为提取器,并进行实际开发的数据清理和升华。

另一种方法是,如果您的列完全对齐,则只需在窗口上单击鼠标中键或在Mac上单击Option +单击即可,这使您可以在文本行内以方形的方式选择文本,如“时尚”,“列”。


问题是在Mac上,只有键盘快捷键选项(无鼠标,无拖动)可以一次选择整个列。
user2544542 '02

-1

我知道notepad ++具有一项功能,可让您通过按住Control + Alt +拖动来选择与行/列无关的文本块。因此,您几乎可以选择所需的任何文本块。


Notepad ++仅限于Windows,OP在Mac上。您还会注意到OP明确表示这不是一个选择...
MattDMo

2
在Linux中,按住Shift +鼠标右键(不是左键)。
hipokito 2015年

@MattDMo Notepad ++在Wine上运行良好。我从Notepad ++转到Geany&SublimeText,而该功能是我所需要的第一个功能。Geany通过Ctrl+Alt+Left Mouse选择来做到。
m3nda 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.