在一个文本文件中,对于每一行,删除从一个空格开始的字符 结束了。
例如:在包含两行的文件中:
hello world
foo good good
处理后,文件看起来像
hello
foo
我试过^\+\s
,但似乎只处理行尾的空格
答案 0 :(得分:7)
你不只是想要
:%s/\s.*//
它匹配第一个空格之后的所有内容。然后删除匹配的匹配。
答案 1 :(得分:3)
为了更好的衡量,一个简单的解决方案不涉及正则表达式(或实际上很多想法):
:%norm f D
说明:
:{range}normal {command}
在{command}
指定的行上执行正常模式{range}
。%
表示“当前缓冲区中的每一行”。f<space>
是一个水平动作,它跳到该行的下一个<space>
。D
删除从光标到行尾的所有内容。正则表达式很吸引人,但是当正常模式命令能够以更直观的方式完成工作时,可能需要花费太多时间才能找到正确的正则表达式模式。