如何在Vim编辑器中过滤文本,仅显示包含com:的行?
在Vim中过滤显示包含
com:的行的几种方法 嘿,这个需求在Vim里有好几种实用的实现方式,我给你整理了几个常用的:
快速查看匹配行(不修改文件)
按下Esc进入命令模式,输入::g/com:/回车后Vim会列出所有包含
com:的行,还会附带行号。如果觉得行号碍事,可以先输入:set nonumber关闭行号再执行这条命令。过滤缓冲区,仅保留匹配行(适合临时编辑查看)
如果你想让当前缓冲区只留下包含com:的行(注意:会修改当前缓冲区内容,建议先备份或在新窗口操作),可以在命令模式输入::v/com:/d这里的
:v是:global!的缩写,代表匹配不符合模式的行,d是删除操作,所以这条命令会删掉所有不含com:的行,剩下的就是你需要的内容。如果不想改动原文件,可以先输入:sp打开一个新窗口,在新窗口执行删除命令,原窗口的内容会保持不变。调用系统grep工具输出结果
如果你习惯用系统的grep命令,也可以在Vim命令模式下输入::!grep "com:" %这里的
%代表当前正在编辑的文件,这条命令会在终端输出所有包含com:的行,结果不会显示在Vim缓冲区里。
小提示:因为com:里的冒号不是Vim搜索模式中的特殊元字符,所以不需要额外转义,直接使用即可。
内容的提问来源于stack exchange,提问作者vico
相关产品推荐
相关产品推荐

