我有一个包含大约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)

使用 Substitution Ex 命令修剪所有行
这与两个答案都非常相似,但我认为提出它是有价值的。
像其他答案一样,我只是使用了 ex 替换命令:
:%s/[^.]*$//
Run Code Online (Sandbox Code Playgroud)
替换说明:
% 表示所有行的范围。
[^.] 是所有非句点字符的字符类
* 是指示 0 个或多个匹配项的量词。
$ 是一个锚点,它与 VIM 通信,我们希望此模式在行尾匹配。
附录
该解决方案假设每一行都有一个句点,否则该命令将无法像@Qeole 所指示的那样按预期工作。Qeole 的解决方案适当地解决了非句点行。