- Mastering Vim
- Ruslan Osipov
- 229字
- 2025-04-04 15:36:07
Types of folds
Vim is somewhat intelligent when it comes to folding code, and supports multiple ways to fold code. The folding method is guarded by a foldmethod option in your .vimrc file. Supported fold methods are as follows:
- manual allows you to manually define folds. This becomes unrealistic when working with any substantial body of text.
- indent supports indentation-based folding, which is perfect for languages and code bases where indentation matters (regardless of the language you're working with, a standardized code base is likely to have some consistent indentation, making indent a quick and easy way to fold away bits you don't care for).
- expr allows for a regular-expression based folding. This is an extremely powerful tool if you have complex custom rules you'd like to use for defining folds.
- marker uses special markup in the text, such as {{{ and }}}. This is useful for managing long .vimrc files, but has little use outside of the Vim world since it requires modifying file content.
- syntax provides syntax-aware folds. However, not every language is supported out of the box (Python isn't).
- diff is automatically used when Vim operates in a diff mode, displaying the difference between two files (see Vimdiff in Chapter 5, Build, Test, and Execute).
Reminder: you can set an option in your .vimrc file by adding the following line: set foldmethod=<method>.