Fixed vim and zsh
This commit is contained in:
153
vim/plugins/FastFold/doc/FastFold.txt
Normal file
153
vim/plugins/FastFold/doc/FastFold.txt
Normal file
@ -0,0 +1,153 @@
|
||||
FastFold, folding optimization *FastFold* *fastfold*
|
||||
|
||||
===========================================================================
|
||||
0. Introduction ~
|
||||
*FastFold-intro* *fastfold-intro*
|
||||
|
||||
Automatic folds - that is, folds generated by a fold method different
|
||||
from `manual` - bog down VIM considerably in insert mode. Also, they are often
|
||||
re-evaluated prematurely for example, when inserting an opening fold marker
|
||||
whose closing counterpart has yet to be added to complete the fold.
|
||||
|
||||
See http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text
|
||||
for a discussion.
|
||||
|
||||
With this plug-in, the folds in the currently edited buffer are updated when
|
||||
certain triggers are met:
|
||||
|
||||
- when saving the buffer
|
||||
- when closing or opening folds (zo, za, zc, etc...)
|
||||
- when moving or operating fold-wise (zj,zk,[z,]z)
|
||||
- when typing `zuz` in normal mode
|
||||
|
||||
===========================================================================
|
||||
1. Commands ~
|
||||
*FastFold-commands* *fastfold-commands*
|
||||
*FastFoldUpdate!*
|
||||
|
||||
- `:FastFoldUpdate` updates all folds in the current buffer.
|
||||
- `:FastFoldUpdate!` updates all folds & echoes what fold method was used
|
||||
|
||||
- The mapping `zuz` that invokes `:FastFoldUpdate!` can be changed to your
|
||||
favorite keystroke, say `<F5>`, by adding
|
||||
>
|
||||
nmap <F5> <Plug>(FastFoldUpdate)
|
||||
<
|
||||
to your `.vimrc`. It can be disabled by adding
|
||||
>
|
||||
nmap <SID>(DisableFastFoldUpdate) <Plug>(FastFoldUpdate)
|
||||
<
|
||||
===========================================================================
|
||||
2. Config ~
|
||||
*FastFold-config* *fastfold-config*
|
||||
|
||||
Each of the above triggers can be enabled or disabled by setting the
|
||||
matching global flags in your `.vimrc`. Default values are shown.
|
||||
>
|
||||
let g:fastfold_savehook = 1
|
||||
let g:fastfold_fdmhook = 0
|
||||
nmap zuz <Plug>(FastFoldUpdate)
|
||||
let g:fastfold_fold_command_suffixes = ['x','X','a','A','o','O','c','C']
|
||||
let g:fastfold_fold_movement_commands = [']z', '[z', 'zj', 'zk']
|
||||
<
|
||||
For example, by adding the following to your `.vimrc`
|
||||
>
|
||||
let g:tex_fold_enabled=1
|
||||
let g:vimsyn_folding='af'
|
||||
let g:xml_syntax_folding = 1
|
||||
let g:php_folding = 1
|
||||
let g:perl_fold = 1
|
||||
<
|
||||
You will enable tex, vim, xml, php and perl syntax folding.
|
||||
|
||||
Set fold methods for every file type only! Setting it globally risks that
|
||||
FastFold assumes the wrong, global, fold method instead of that intended by the
|
||||
file type plug-in, for example TagList.
|
||||
|
||||
-----------------------------
|
||||
|
||||
- FastFold updates all folds when you open or close folds by the commands
|
||||
zx, zX, za, zA, zo, zO, zc, zC. This list of commands is configured by
|
||||
>
|
||||
let g:fastfold_fold_command_suffixes = ['x','X','a','A','o','O','c','C']
|
||||
<
|
||||
To intercept all possible fold commands (such as zr,zm,...),change this to
|
||||
>
|
||||
let g:fastfold_fold_command_suffixes =
|
||||
['x','X','a','A','o','O','c','C','r','R','m','M','i','n','N']
|
||||
<
|
||||
To disable all interceptions, change this to
|
||||
>
|
||||
let g:fastfold_fold_command_suffixes = []
|
||||
<
|
||||
- FastFold updates all fold when you move or operate fold-wise by
|
||||
the commands zj,zk,[z or ]z. This list of commands is configured by
|
||||
>
|
||||
let g:fastfold_fold_movement_commands = [']z', '[z', 'zj', 'zk']
|
||||
<
|
||||
It can be disabled by
|
||||
>
|
||||
let g:fastfold_fold_movement_commands = []
|
||||
<
|
||||
- FastFold updates all folds when you save a buffer. This hook is set by
|
||||
>
|
||||
let g:fastfold_savehook = 1
|
||||
<
|
||||
- FastFold intercepts every change of the fold method by
|
||||
>
|
||||
let g:fastfold_fdmhook = 1
|
||||
<
|
||||
This is disabled by default as it could interfere with other plugins such as
|
||||
`easymotion`.
|
||||
|
||||
- To disable FastFold for a list of file types, such as 'taglist', add
|
||||
>
|
||||
` let g:fastfold_skip_filetypes`= [ 'taglist' ]
|
||||
<
|
||||
to your 'vimrc'. Default value is [].
|
||||
|
||||
- Add a fold text-object, mapped to `iz` and `az`, by adding the lines
|
||||
|
||||
xnoremap iz :<c-u>FastFoldUpdate<cr><esc>:<c-u>normal! ]zv[z<cr>
|
||||
xnoremap az :<c-u>FastFoldUpdate<cr><esc>:<c-u>normal! ]zV[z<cr>
|
||||
|
||||
to your 'vimrc'.
|
||||
===========================================================================
|
||||
3. Extra Notes ~
|
||||
|
||||
3.1 Related Plugins ~
|
||||
|
||||
`FastFold` integrates with the plug-in `vim-stay` available at
|
||||
|
||||
https://github.com/kopischke/vim-stay
|
||||
|
||||
that stores and restores the last folds by `:mkview` and `:loadview`.
|
||||
|
||||
------------------------------
|
||||
|
||||
A fold-text function `CustomFoldText()` that displays the percentage of the
|
||||
number of buffer lines that the folded text takes up and indents folds
|
||||
according to their nesting level is available at
|
||||
|
||||
http://www.github.com/Konfekt/FoldText
|
||||
|
||||
3.2 Warning ~
|
||||
|
||||
FastFold overwrites your manual folds when saving the currently edited buffer,
|
||||
unless
|
||||
|
||||
- FastFold is disabled for this filetype by `g:fastfold_skip_filetypes`, or
|
||||
- the `foldmethod=manual` since having entered the buffer.
|
||||
|
||||
3.3 API ~
|
||||
|
||||
The last used fold method by which FastFold updates the folds in the current
|
||||
buffer can be read off from the window local variable `w:lastdfm`.
|
||||
|
||||
3.4 Thanks go to... ~
|
||||
|
||||
- starcraftman for providing this documentation, and
|
||||
- blueyed, kopischke, sabauma, willywampa, and many others for reporting
|
||||
issues and suggesting code improvements.
|
||||
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl
|
Reference in New Issue
Block a user