Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Function to open folds that have less than the specified number of lines
function! FoldAllBut( foldminlines )
" Description: Function to open folds that have less than the specified number of lines
" We assume that the folds are initially closed
" If a fold exists and is closed and has lesser number of lines than specified, open it and all nested folds
" Note: This does not work on nested folds
folddoclosed
\ if (( foldclosed(".") >= 0 ) && ( foldclosedend(".") - foldclosed(".") + 1 < a:foldminlines ))
\ exe 'normal! zO'
\ endif
endfunction
@kshenoy
Owner

The silent! is required to ignore a trigger to search for the last searched pattern. TBH, I'm unable to figure out why this happens.
Thanks to dhruvsagar for suggesting using folddoclosed()

@dhruvasagar

Hey kshenoy, chrisbra10 pointed out the reason why it was triggering the search here on reddit. I've updated my fork of your gist here with the fix accordingly.

function! FoldAllBut( foldminlines )
    folddoclosed 
        \ if ( (foldclosed(".") >= 0 ) && ( foldclosedend(".") - foldclosed(".") + 1 < a:foldminlines ))
        \   exe "normal! zO"
        \ endif
endfunction

Posted here just in case.

@kshenoy
Owner

Ah, works properly now. Updated it at my end as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.