Dietrich Ayala
Dietrich Ayala

Reputation: 941

How can I have *both* Markdown header folding and indent folding in Vim

Vim now has built-in Markdown folding, yay!

I want to fold on Markdown headers, and within headers, fold on indents also.

How can I have both Markdown header folding + indent fold method at the same time?

Upvotes: 3

Views: 1058

Answers (1)

Das_Geek
Das_Geek

Reputation: 2845

There can only be one of Vim's standard fold methods used within an individual window, but what you ask should still be possible. Here are a few options that I can think of:

  • You can use the expr method option and create your own custom rules with that. This is probably the only "real" way to get what you want, but it's the most complicated option.

  • You could also use two windows in a tab, each pointing at the same buffer, and set different fold methods locally for each split.

  • Finally, you could always hack something together with autocommands. From the Vim wiki page on folding, about having both indent and manual folding:

    augroup vimrc
      au BufReadPre * setlocal foldmethod=indent
      au BufWinEnter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
    augroup END
    

    This hack takes advantage of modelines, and Vim's behavior for setting variables before vs. after the modeline is read. Note that you have to have Vim's nocompatible option set for this sort of trick to work.

Upvotes: 2

Related Questions