删除"."后的所有字符.在每一行

Luc*_*cas 15 vim

我有一个包含大约2,000行文本的文本文件,我想删除每行文本的大部分内容.

文本采用以下格式:

Important Text that I care about. Stuff I want to delete
Run Code Online (Sandbox Code Playgroud)

我对vim很新,并且已经阅读了一些关于vim命令的手册,但我仍然不确定如何删除"."之后的所有文本.在每一行.

有人可以给我一个快速命令,这样做吗?

谢谢

Qeo*_*ole 23

有了替换:

:%s/\..*/./
Run Code Online (Sandbox Code Playgroud)

:normal命令:

:%norm f.lD
Run Code Online (Sandbox Code Playgroud)


rom*_*inl 16

各种其他:normal解决方案

:%norm )Dx
:%norm $T.D
:%norm f.C.
:%norm 0/\. /e<C-v><CR>D
Run Code Online (Sandbox Code Playgroud)

:正常


Pat*_*con 6

使用 Substitution Ex 命令修剪所有行

这与两个答案都非常相似,但我认为提出它是有价值的。

像其他答案一样,我只是使用了 ex 替换命令:

 :%s/[^.]*$//
Run Code Online (Sandbox Code Playgroud)

替换说明:

% 表示所有行的范围。

[^.] 是所有非句点字符的字符类

* 是指示 0 个或多个匹配项的量词。

$ 是一个锚点,它与 VIM 通信,我们希望此模式在行尾匹配。


附录

该解决方案假设每一行都有一个句点,否则该命令将无法像@Qeole 所指示的那样按预期工作。Qeole 的解决方案适当地解决了非句点行。

  • 请注意,此命令还将删除所有不包含“.”的行。 (2认同)