In my .vimrc
I\'ve put set foldmethod=syntax
to enable folding of methods etc. However, I don\'t like the default that everytime I open a file, the who
You can put this in your .vimrc
:
au BufRead * normal zR
It declares an automatic command (au
), triggered when a buffer is read (BufRead
), matching all files (*
) and executes the zR
(opens all folds) command in normal mode.
You could map it to keys to enable it. For example,
nmap ,f :set foldmethod=syntax<CR>
Then while in normal mode hit the ",f" key combination
In .vimrc
add an autocmd for BufWinEnter
to open all folds automatically like this:
autocmd BufWinEnter * silent! :%foldopen!
That tell vim to execute the silent :%foldopen!
after opening BunWinEnter
event (see :h BufWinEnter). The silent %foldopen!
will execute foldopen on the whole buffer thanks to the %
and will open all folds recursively because of the !
. Any eventual error message will be suppressed by silent. (You could get error messages like E490: No fold found
if the buffer actually didn't contain any fold yet)
Note: You could use BufRead
instead of BufWinEnter
but then if the file has a modeline that enables the folding that will override this autocmd. I mean BufRead
autocmds run before the modeline is processed and BufWinEnter
will run them after. I find the later to be more useful
set foldlevel=99
should open all folds, regardless of method used for folding. With foldlevel=0
all folded, foldlevel=1
only somes, ... higher numbers will close fewer folds.
set nofoldenable
Adding this to your .vimrc
will temporarily disable folding when you open the file, but folds can still be restored with zc
You can open unfolded file when you put set nofoldenable
into your .vimrc file.