2015-08-13 60 views
2

如何顯示與「foo」匹配的打開摺疊中的所有行?如何在vim中顯示與摺疊搜索相匹配的行?

我想這每"search only in folded text"

:folddoopen g/foo 

,但得到這個錯誤:E147: Cannot do :global recursive


VIM版本:7.3(2010年8月15日)

+0

這取決於你想要做什麼。如果你只想看到匹配的行而不是將光標移動到那裏,解決方法是打開'hlsearch'(見':help'hlsearch')。封閉的褶皺將保持閉合狀態,所以你不會在裏面看到任何火柴。 :) –

+0

你不能使用':foldd [oopen]'然後是'global',因爲'foldd'本質上是一個'global'命令(除了不用爲獲得'cmd'自動爲所有未摺疊的線條做到這一點)。 – Marth

回答

4

看來你不能使用:folddoopen:g以任何有意義的方式在一起。相反,您必須使用:gfoldclosed()

:g/foo/if foldclosed('.') == -1 | # | endif 

如需更多幫助,請參見:

:h :g 
:h :folddoopen 
:h :# 
:h :if 
:h foldclosed() 
+0

不,那實際上會返回所有的行。 –

+0

你是正確的,你必須使用'foldclosed()' –

+0

更接近,但是返回關閉摺疊中的行。 –