VIM选择整条线

app*_*ver 55 vim

当光标位于该行的某个随机点时,如何在VIM中选择单行?

我知道你可以做(​​v,$)到达行的末尾,或者(v,^)到达开头,但是当你做(v,$,^)时它逻辑上不会选择整个行line,它从光标中选择,直到结束,然后将其切换到光标直到开始......所以这种方法当然失败了.

mea*_*gar 114

Capital V在一个键击中选择当前行; 二,如果你在shift+中加入"shift" v.

  • 您的答案与问题描述的内容略有不同:它包含了该行的换行符,即,当您“ d”删除选择时,这里的整个行都消失了,而在问题的解决方法中,该行仅被清除了,但仍保留(空) 。 (2认同)

Jas*_* Ge 59

V会直接回答.但是,我很少需要这样做,因为"选择当前行"通常是更大任务的一部分.此类任务的示例包括复制行和删除行.通常有一种更好的方法来完成整个任务.以下是我能想到的一些任务:

  • 复制该行: yy
  • 删除该行: dd
  • 缩进行:>><<
  • 选择当前段落:VapVip
  • 从当前行删除到文件末尾 0dg
  • 突出显示当前行以查看我的光标所在::set cursorline在.vimrc文件中使用

我使用的一种情况V是选择多个不是段落或其他文本对象的行.在这种情况下,有一个可能对您有用的提示:一旦处于选择模式,您可以使用在选择o的开始和结束之间跳转光标.


FDi*_*off 9

虽然这可能是更多的击键.

如果您已处于视觉模式,则可以使用o视觉选择的另一端.

所以你可以输入

v0o$
Run Code Online (Sandbox Code Playgroud)

选择整行.看一眼:h visual-change


但是从评论来看,你似乎只想复制整行.

这只是 yy


sam*_*nch 5

只需更改您的操作顺序。你几乎拥有它。

^,v,$
Run Code Online (Sandbox Code Playgroud)

或者按照@Kent 的建议:因为 ^ 转到第一个非空字符,如果该行有前导空格:

0,v,$
Run Code Online (Sandbox Code Playgroud)

  • 我会按`0v$`,因为`^` 转到第一个**非空** 字符。如果该行有前导空格,则不会选择空格。 (2认同)