Does anyone use code folding when navigating large Ruby files?
I’ve watched some tutorials of how it can be used with other languages, but when I try the same with a Ruby file it seems to be have erratically, e.g.
zc folds all the methods of the class instead of just the current one.
I have folding on by default, but frequently turn it off (often globally) shortly after launching vim. However, when I first start digging into a new codebase it’s nice to get an overview of what kinds of methods (and how many) are in a given file.
I use this plugin:
" Auto-fold files upon open. Disable session-wide with: <leader>nf
And have these additional settings in my
" toggle folding with za.
" fold everything with zM
" unfold everything with zR.
" zm and zr can be used too
" set foldmethod=syntax "fold based on syntax (except for haml below)
" set foldnestmax=10 "deepest fold is 10 levels
" set nofoldenable "dont fold by default
autocmd BufNewFile,BufRead *.haml setl foldmethod=indent nofoldenable
autocmd! FileType nofile setl foldmethod=indent nofoldenable
" Space to toggle folds.
nnoremap <Space> za
vnoremap <Space> za
" Toggles folds being enabled for this vim session
if(&foldenable == 1)
au WinEnter * set nofen
au WinLeave * set nofen
au BufEnter * set nofen
au BufLeave * set nofen
au WinEnter * set fen
au WinLeave * set fen
au BufEnter * set fen
au BufLeave * set fen
nnoremap <Leader>nf :call FoldToggle()<CR>
I re-installed that plug-in and copied your config but I’m still seeing the same issue.
Let’s say you have this Ruby file:
If I move my cursor to the line containing
def a and hit
zc, I would expect only the first method to be folded, but instead all three methods are folded.
However, if I quit vim, re-open the file and immediately hit
zR (open all foldings), then nothing happens visually but
zc then begins to work as expected. It’s as if the folding state is somehow messed up initially and
zR fixes it.
So I’m not sure if I’m misunderstanding how to use folding, or there is some problem with my setup, or a bug in the plug-in.
If you pasted all of my settings then you should be able to toggle a fold with the space bar. I don’t use
zc myself. The spacebar uses
I have the same problem if I use
I found an open issue for this problem, but if it’s working for you, then I wonder what’s different about our setups that might affect this.
Oh, I just noticed it was actually you who opened that issue a year ago!