72

我们如何使用 vim 删除从行首到光标处的字符。比如说,当光标在“w”上时,我们有一个字符串“hello world”。我们如何从“h”删除到“w”。

4

6 回答 6

130

试试d00表示行的开头。

于 2013-01-09T15:31:11.960 回答
53

我相信以下应该有效(d^):

d^

这假设您只想删除它,h即使它前面有空格。它将离开空白区域。

于 2013-01-09T15:31:36.690 回答
13

TLDR: 最简单的方法是执行以下操作

  • 使用导航模式
  • 将光标设置在您想要的任何行
    • 按 dgg - 这将删除从光标到开头的所有内容
    • 按 dG - 这将删除从光标到文档末尾的所有行。

但为什么?

gg - goes to the begin of the document
G - navigates at its very end
d - delete mode

我也在寻找一些带有 d 符号和行号的组合,当你编辑像 GB 这样的大文件时,我发现它有点烦人。喜欢删除前 3 行,你需要这样做:0,d3,但是当文档超过 100 万行时,我的眼睛很难读懂这些废话......

于 2018-06-28T07:04:50.747 回答
6

其他建议对我不起作用,但我使用视觉模式来实现这一点。

我将光标移动到我想删除的位置,然后点击v进入视觉模式。然后我点击^选择回到当前行的开头,然后d删除所有突出显示的文本。

于 2015-01-12T16:12:39.543 回答
0

不知道发生了什么,但是当我输入 d0 时,该行从我的光标位置删除到该行的开头。– YouAreAwesome 2017 年 12 月 14 日在 6:43

确认这有效。这似乎是最简单的方法。(您不能对评论进行投票,因此我将其添加为自己的答案。)

示例:在 .ssh/authorized_keys 中,我有:

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo '请以用户 "centos" 而不是用户 "root" 登录。';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2 ...

这是 Amazon AWS 阻止您以 root 身份登录的方式。

我将光标放在 ssh-rsa 中的 s 上并点击 'd0' 并完美删除行首。

于 2020-09-17T11:34:55.740 回答
0

好吧,如果您的光标在“w”上,您将向后删除...

您可以使用 vim 的 "till" t,但向后移动它需要一个大写字母T。对于“查找”f向后移动它的F.

因此,在您的情况下,您可以删除“直到”引号符号: dT"

或者,如果更喜欢定位/查找“h”: dFh

尝试先在没有删除的情况下跳来跳去感受一下,然后您可以将动作分层作为前缀。

快乐维明!:)

于 2022-01-20T15:32:00.270 回答