Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mustache/vim-mustache-handlebars
mustache and handlebars mode for vim
https://github.com/mustache/vim-mustache-handlebars
Last synced: 5 days ago
JSON representation
mustache and handlebars mode for vim
- Host: GitHub
- URL: https://github.com/mustache/vim-mustache-handlebars
- Owner: mustache
- Created: 2013-10-24T00:31:44.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2021-11-30T12:42:57.000Z (almost 3 years ago)
- Last Synced: 2024-08-02T05:13:22.393Z (3 months ago)
- Language: Vim script
- Homepage: mustache.github.io
- Size: 77.1 KB
- Stars: 453
- Watchers: 10
- Forks: 49
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
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)This plugin contributes to [vim-polyglot](https://github.com/sheerun/vim-polyglot) language pack.
**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.mustacheGet [pathogen][pathogen].
### Install for vundle
Add `Plugin 'mustache/vim-mustache-handlebars'` to your `.vimrc` and do a
`:PluginInstall`.### Built-in Vim Package Manager
> **Heads up!** Only available for Vim 8+
mkdir -p ~/.vim/pack/mustache/start
cd ~/.vim/pack/mustache/start
git clone https://github.com/mustache/vim-mustache-handlebars.git**To learn more about Vim's built-in package manager:** `:help packages`.
### 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 tagCount 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