如何在可视块模式下选择整列?

Gök*_*ver 48 vim

假设我在(g)Vim中有这个简单的文字:

a  b  c
a  b  c
a  b  c
a  b  c
a  b  c
Run Code Online (Sandbox Code Playgroud)

更改为可视块选择模式后,如何选择整个第3列?Ctrl+ V G选择全文.我正在寻找一个键盘快捷键来选择整列选择(如果存在).

谢谢.

Jos*_*osh 50

CTRL-V进入块选择模式(允许您选择矩形文本块).在gvim中,这与Windows的粘贴快捷方式冲突,因此您可以使用它CTRL-Q.

遗憾的是,CTRL-Q由于[G]动作在文件中线性移动,[G]不会执行您想要的操作,因此您仍然需要依赖于使用计数的[j]动作.你可以通过使用像9999这样的大量计数来避免确切知道文件的大小.所以完整的命令是CTRL-Q[9999j].

唉,我不知道如何避免丑陋的黑客攻击.

编辑:哦,我读得你的问题太快了,错过了你已经提到过你对视觉模块模式的新认识.我想这是一个相当无用的答案,对不起!


Dan*_*uis 28

G转到最后一行,但如果设置了startoflinecompatible(启用startofline)选项,则将光标移动到第一个非空白位置.如果要保持相同的列,请nosol在进入可视块模式之前进行设置,然后点击G.

从手册输入startofline:

当"打开"下面列出的命令时,将光标移动到该行的第一个非空白处.关闭时光标保持在同一列中(如果可能).这适用于命令:CTRL-D,CTRL-U,CTRL-B,CTRL-F,"G","H","M","L",gg,以及命令"d","<带有行向运算符的<"和">>",带有计数的"%"和缓冲区更改命令(CTRL - ^,:bnext,:bNext等).

  • 很好,"set nosol"直接进入我的.vimrc.我实际上也喜欢删除的答案,因为一个未知长度的文件9999j或一个大数字为相同的列选择提供了技巧. (4认同)

小智 6

选择列的简便方法可以使用插件vis.vim

进入视觉模式,选择列ctrl+v,然后你可以用它做任何你想做的事情

使用V,vCtrl+V在视觉上标记一些region.Then类型:B cmd(此命令将显示为: :'<,'>B cmd)

然后该命令将仅应用于视觉选择的区域.

例如:

使用ctrl-v选择一列,然后做一个替代的只是列.

Ctrl-V ..移动.. :B s/pattern/becomes/

使用Ctrl-V来选择一列,然后应用外部过滤器能够做到这列:

Ctrl-V ..移动.. :B !sort