dotfiles/vim/vim.symlink/bundle/vim-mustache-handlebars/README.md

130 lines
3.8 KiB
Markdown

mustache and handlebars mode for vim
====================================
A vim plugin for working with [mustache][mustache] and
[handlebars][handlebars] templates. It has:
- syntax highlighting
- matchit support
- mustache abbreviations (optional)
- section movement mappings `[[` and `]]`
- text objects `ie` (inside element) and `ae` (around element)
**Note**: for compatibility reason #7, we've renamed the repo name from
`vim-mode` to `vim-mustache-handlebars`.
### Install for pathogen
cd ~/.vim/
git clone git://github.com/mustache/vim-mustache-handlebars.git bundle/mustache
vim bundle/mustache/example.mustache
Get [pathogen][pathogen].
### Install for vundle
Add `Plugin 'mustache/vim-mustache-handlebars'` to your `.vimrc` and do a
`:PluginInstall`.
### Manually Install
cd ~/.local/src
git clone git://github.com/mustache/vim-mustache-handlebars.git mustache.vim
cp -R mustache.vim/syntax/* ~/.vim/syntax/
cp -R mustache.vim/ftdetect/* ~/.vim/ftdetect/
cp -R mustache.vim/ftplugin/* ~/.vim/ftplugin/
vim mustache.vim/example.mustache
### Mustache Abbreviations
You can activate mustache abbreviations by putting this line in your `.vimrc`:
`let g:mustache_abbreviations = 1`
Now you get a set of convenient abbreviations. Underscore `_` indicates where
your cursor ends up after typing an abbreviation:
- `{{` => `{{_}}`
- `{{{` => `{{{_}}}`
- `{{!` => `{{!_}}`
- `{{>` => `{{>_}}`
- `{{<` => `{{<_}}`
- `{{#` produces
```
{{# _}}
{{/}}
```
- `{{if` produces
```
{{#if _}}
{{/if}}
```
- `{{ife` produces
```
{{#if _}}
{{else}}
{{/if}}
```
### Section movement mappings
Following the vim convention of jumping from section to section, `[[` and `]]`
mappings are implemented for easier movement between mustache tags.
- `]]` jumps to the first following tag
- `[[` jumps to the first previous tag
Count with section movements is supported:
- `2]]` jumps to the second next tag
### Text objects
Vim has a very powerful concept of "text objects". If you aren't using text objects,
you can get familiar with it on [this vim help
link](http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects). Learning
text objects really speeds up the vim workflow.
In that spirit, this plugin defines 2 text objects:
- `ie` a mnemonic for `inside element`, selects all the text inside the
mustache tag.
For example, when used with `vie` it will visually select the
bold text in the following snippets: {{**some_variable**}},
{{{**different_variable**}}}.
- `ae` a mnemonic for `around element`, selects the whole mustache tag,
including the curly braces.
Example, `vae` visually selects the bold text in the following
snippets: **{{some_variable}}** or **{{{another_variable}}}**.
Here are other usage examples:
- `dae` - deletes the whole mustache tag, including the curly braces
- `die` - deletes **inside** the mustache tag, leaving only curly braces
- `yae` - "yanks" the whole mustache tag - with curly braces
- `cie` - deletes **inside** the mustache tag and goes in insert mode
`ie` and `ae` text objects are enabled by default. To disable them, put the
following in your `.vimrc`:
let g:mustache_operators = 0
## Maintainers
* [Bruno Michel](http://github.com/nono)
* [Bruno Sutic](http://github.com/bruno-)
* [Juvenn Woo](http://github.com/juvenn)
This is combined work from
[juvenn/mustache.vim](http://github.com/juvenn/mustache.vim) and
[nono/vim-handlebars](http://github.com/nono/vim-handlebars).
----
Thanks [@5long](http://github.com/5long) for adding matchit support.
You're encouraged to propose ideas or have discussions via github
issues.
[mustache]: http://mustache.github.io
[handlebars]: http://handlebarsjs.com
[pathogen]: https://github.com/tpope/vim-pathogen