You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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;
create folds from regions between {{{}}} automatically (marks are
customizable);
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 avy package: you can use avy to fold text with minimal
number of key strokes!
Installation
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
this:
(require'vimish-fold)
It's available via MELPA, so you can just M-x package-install RET
vimish-fold RET.
Usage
First of all, create global key bindings for most important functions:
vimish-fold creates folds;
vimish-fold-delete deletes folds.
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:
vimish-fold-unfold
vimish-fold-unfold-all
vimish-fold-refold
vimish-fold-refold-all
vimish-fold-delete-all
vimish-fold-toggle
vimish-fold-toggle-all
vimish-fold-avy (requires avy package)
vimish-fold-from-marks
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:
(vimish-fold-global-mode 1)
Customization
There are a number of customization options that are available via M-x
customize-group vimish-fold. Everything is carefully documented, as
always.
License
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!