Last active

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Function to open folds that have less than the specified number of lines

View FoldAllBut.vim
1 2 3 4 5 6 7 8 9 10
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
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()

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.

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.