Navigate to the next open fold
Talk0
1,599pages on
this wiki
this wiki
Redirected from VimTip1194
Tip 1194 Printable Monobook Previous Next
created 2006 · complexity basic · author Ethan Mallove · version 6.0
I think it makes more sense for ]z and [z to navigate to the next/previous open fold, so I added the following to my vimrc:
function! GoToOpenFold(direction)
let start = line('.')
if (a:direction == "next")
while (foldclosed(start) != -1)
let start = start + 1
endwhile
else
while (foldclosed(start) != -1)
let start = start - 1
endwhile
endif
call cursor(start, 0)
endfunction
nmap ]z :cal GoToOpenFold("next")
nmap [z :cal GoToOpenFold("prev")
Comments
Edit
Add the normal command "zj/zk" if you'd prefer to have the mapping jump out of the current open fold and into the next open fold.
" set ]z and [z go to find open folds
function! GoToOpenFold(direction)
if (a:direction == "next")
normal zj
let start = line('.')
while foldclosed(start) != -1
let start = start + 1
endwhile
else
normal zk
let start = line('.')
while foldclosed(start) != -1
let start = start - 1
endwhile
endif
call cursor(start, 0)
endfunction