82

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

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

4

5 回答 5

159

大写V一键选中当前行;shift二,如果您在+中包含“移位” v

于 2013-09-06T20:52:24.267 回答
77

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

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

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

于 2013-09-08T06:28:22.260 回答
10

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

如果您已经处于视觉模式,您可以使用o转到视觉选择的另一端。

所以你可以输入

v0o$

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


但是,从评论看来,您只想复制整行。

这只是yy

于 2013-09-06T21:50:13.333 回答
5

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

^,v,$

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

0,v,$
于 2013-09-06T20:53:06.640 回答
1

我知道这个线程非常古老,但我也有同样的问题。该线程首先出现,但我找到了与此处找到的答案不同的答案。使用“V”选择整行。就这么简单。一个字符选择整个当前行。

于 2020-06-25T02:32:28.523 回答