当前位置:  开发笔记 > 编程语言 > 正文

隐藏Vim中的所有(非)匹配行

如何解决《隐藏Vim中的所有(非)匹配行》经验,为你挑选了4个好方法。

是否可以在vi或Vim中显示/隐藏所有匹配的行?不突出显示,只显示那些线条.

例如,我有一个单词的文字ERROR.如何让它只显示包含的行ERROR以及如何仅显示没有的行ERROR

是否有解决方案没有删除所有匹配的行,然后只是撤消它?



1> user55400..:

你知道这个:global命令吗?这样做你想要的吗?

:g/ERROR

并为相反的:

:g!/Error

或等效地:

:v/Error


这不是很好.滚动到底部后,命令结束,所有内容再次显示.它并没有真正隐藏这些内容.

2> studgeek..:

根据您的用例,另一种方法是使用vimgrep及其结果在quickfix中.您可以执行以下操作:

:vimgrep pattern %将搜索当前文件并转到第一个搜索结果.更重要的是,它还将结果放在"quickfix list"中.

:copen然后将在单独的quickfix窗口中打开quickfix列表.因此,您将拥有一个单独的窗口,其中包含您上一个vimgrep中的所有行.在quickfix窗口中,您可以按Enter键或双击一行以跳转到原始文件中的相应行.

:colder将让你回到旧的quickfix列表(较旧的vimgrep结果).并:cnewer转向更新的搜索结果.

请注意,quickfix列表在运行时也会更新:make(这就是为什么它被称为修复错误的quickfix).因此,还有一个名为"位置列表"的quickfix列表的替代品.要使用它,而不是你用:lvimgrep,然后用1-前缀的命令,而不是C-前缀的命令- ,:lopen,.:lolder:lnewer

当然,你可以做更多的事情.有关详情:help quickfix,请参阅.

PS,你说你不想要一种删除行然后撤消它们的方法.但是既然你标记g/ERROR了答案,我想我会指出一种快速而肮脏的方法g!/ERROR/d.然后,您可以使用它轻松撤消它u.另外,仅供参考,您可以:set hlsearch突出显示与:g命令匹配的模式.



3> Mykola Golub..:

您可以使用

:g/ERROR/

用ERROR打印所有行

还有一个Vim插件,我看了很多次但没有使用: foldsearch:折叠与给定模式不匹配的行


+1表示foldsearch插件的链接.它不引人注目,可以派上用场.

4> Shivendra..:

最好的方法是 - >

:vimgrep /something/g % | copen

这将打开关键字的匹配列表,并且仅在quickfix窗口中显示匹配的行.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有