This is a package to perform text folding like in Vim. It has the following features:
folding of active regions;
good visual feedback: it's obvious which part of text is folded;
persistence by default: when you kill a buffer your folds don't disappear;
persistence scales well, you can work on hundreds of files with lots of folds without adverse effects;
it does not break indentation;
folds can be toggled from folded state to unfolded and back very easily;
quick navigation between existing folds;
you can use mouse to unfold folds (good for beginners and not only for them);
for fans of the
avypackage: you can use
avyto fold text with minimal number of key strokes!
If you would like to install the package manually, download or clone it and
put on Emacs'
load-path, then you can require it in your init file like
It's available via MELPA, so you can just M-x package-install RET vimish-fold RET.
First of all, create global key bindings for most important functions:
When point is inside of a fold you can toggle it with C-`, so usually you don't need to bind toggling functions.
Minimal code creating the keybindings might look like this:
(global-set-key (kbd "<menu> v f") #'vimish-fold) (global-set-key (kbd "<menu> v v") #'vimish-fold-delete)
Of course you can choose different key bindings.
Other functions that constitute API of the package:
To get persistent folds you need to enable a minor mode provided by the
package. You can turn
vimish-fold-mode selectively for modes where you
want to have persistent folding, or simply activate it everywhere:
There are a number of customization options that are available via M-x customize-group vimish-fold. Everything is carefully documented, as always.
This work is based on Magnar Sveen's
fold-this package to some extent, so
I think I should include him as an author, thanks Magnar!
Copyright © 2015–2018 Mark Karpov
Copyright © 2012–2013 Magnar Sveen
Distributed under GNU GPL, version 3.