aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-snipmate/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/vim-snipmate/README.md')
-rw-r--r--vim/bundle/vim-snipmate/README.md169
1 files changed, 169 insertions, 0 deletions
diff --git a/vim/bundle/vim-snipmate/README.md b/vim/bundle/vim-snipmate/README.md
new file mode 100644
index 0000000..b47b56d
--- /dev/null
+++ b/vim/bundle/vim-snipmate/README.md
@@ -0,0 +1,169 @@
+# SnipMate #
+
+SnipMate aims to provide support for textual snippets, similar to TextMate or
+other Vim plugins like [UltiSnips][ultisnips]. For
+example, in C, typing `for<tab>` could be expanded to
+
+ for (i = 0; i < count; i++) {
+ /* code */
+ }
+
+with successive presses of tab jumping around the snippet.
+
+Originally authored by [Michael Sanders][msanders], SnipMate was forked in 2011
+after a stagnation in development. This fork is currently maintained by [Rok
+Garbas][garbas], [Marc Weber][marcweber], and [Adnan Zafar][ajzafar].
+
+
+## Installing SnipMate ##
+
+We recommend one of the following methods for installing SnipMate and its
+dependencies. SnipMate depends on [vim-addon-mw-utils][mw-utils] and
+[tlib][tlib].
+
+> **NOTE:** SnipMate does not ship with any snippets out of the box. We suggest
+looking at the [vim-snippets][vim-snippets] repository.
+
+* Using [VAM][vam], add `vim-snippets` to the list of packages to be installed.
+
+* Using [Pathogen][pathogen], run the following commands:
+
+ % cd ~/.vim/bundle
+ % git clone https://github.com/tomtom/tlib_vim.git
+ % git clone https://github.com/MarcWeber/vim-addon-mw-utils.git
+ % git clone https://github.com/garbas/vim-snipmate.git
+
+ # Optional:
+ % git clone https://github.com/honza/vim-snippets.git
+
+* Using [Vundle][vundle], add the following to your `vimrc` then run
+ `:PluginInstall`
+
+ Plugin 'MarcWeber/vim-addon-mw-utils'
+ Plugin 'tomtom/tlib_vim'
+ Plugin 'garbas/vim-snipmate'
+
+ " Optional:
+ Plugin 'honza/vim-snippets'
+
+## FAQ ##
+
+> SnipMate doesn't work / My snippets aren't triggering
+
+Try all of the following:
+
+* Check that SnipMate is loaded. This can be done by looking for
+ `<Plug>snipMateTrigger` and similar maps in the output of `:imap`.
+ Additionally make sure either `<Plug>snipMateTrigger` or
+ `<Plug>snipMateNextOrTrigger` is mapped to the key you expect.
+
+* Check that the snippets file you mean to use exists, and that it contains the
+ snippet you're trying to expand.
+
+* Check that your snippets file is located inside a `foo/snippets` directory,
+ where `foo` is a path listed in your `runtimepath`.
+
+* Check that your snippets file is in scope by either the filetype matching the
+ path of the snippet file or the scope explicitly loaded.
+
+* Check if any snippets from your snippets file are available. This can be done
+ with the "show available snips" map, by default bound to `<C-R><Tab>` in
+ insert mode.
+
+If all of the above check out, please open an issue stating your Vim version,
+a sample snippet, and a description of exactly what happens when you try to
+trigger a snippet.
+
+> How does SnipMate determine which snippets to load? How can I separate, for
+> example, my Rails snippets from my Ruby snippets?
+
+Primarily SnipMate looks at the `'filetype'` and `'syntax'` settings. Taking
+"scopes" from these options, it looks in each `snippets/` directory in
+`'runtimepath'` for files named `scope.snippets`, `scope/*.snippets`, or
+`scope_*.snippets`.
+
+However we understand this may not allow for the flexibility desired by some
+languages. For this we provide two options: scope aliases and the
+`:SnipMateLoadScope` command. Scope aliases simply say "whenever this scope is
+loaded, also load this other scope:
+
+ let g:snipMate = get(g:, 'snipMate', {}) " Allow for vimrc re-sourcing
+ let g:snipMate.scope_aliases = {}
+ let g:snipMate.scope_aliases['ruby'] = 'ruby,rails'
+
+will load the `ruby-rails` scope whenever the `ruby` scope is active. The
+`:SnipMateLoadScope foo` command will always load the foo scope in the current
+buffer. The [vim-rails](https://github.com/tpope/vim-rails) plugin automatically
+does `:SnipMateLoadScope rails` when editing a Rails project for example.
+
+## Release Notes ##
+
+### 0.89 - 2016-05-29 ###
+
+* Various regex updates to legacy parser
+* Addition of double bang syntax to completely remove a snippet from lookup
+* Group various SnipMate autocommands
+* Support setting 'shiftwidth' to 0
+* Parser now operates linewise, adding some flexibility
+* Mirror substitutions are more literal
+* Mirror length is calculated correctly when substitutions occur
+
+### 0.88 - 2015-04-04 ###
+
+* Implement simple caching
+* Remove expansion guards
+* Add `:SnipMateLoadScope` command and buffer-local scope aliases
+* Load `<scope>_*.snippets` files
+* Use CursorMoved autocmd events entirely
+
+* The nested branch has been merged
+ * A new snippet parser has been added. The g:snipmate.version as well as
+ version lines in snippet files determines which is used
+ * The new parser supports tab stops placed within placeholders,
+ substitutions, non-consecutive stop numbers, and fewer ambiguities
+ * The stop jumping code has been updated
+ * Tests have been added for the jumping code and the new parser
+
+* The override branch has been merged
+ * The g:snipMate.override option is added. When enabled, if two snippets
+ share the same name, the later-loaded one is kept and the other discarded
+ * Override behavior can be enabled on a per-snippet basis with a bang (!) in
+ the snippet file
+ * Otherwise, SnipMate tries to preserve all snippets loaded
+
+* Fix bug with mirrors in the first column
+* Fix bug with tabs in indents ([#143][143])
+* Fix bug with mirrors in placeholders
+* Fix reading single snippet files
+* Fix the use of the visual map at the end of a line
+* Fix expansion of stops containing only the zero tab stop
+* Remove select mode mappings
+* Indent visual placeholder expansions and remove extraneous lines ([#177][177]
+ and [#178][178])
+
+### 0.87 - 2014-01-04 ###
+
+* Stop indenting empty lines when expanding snippets
+* Support extends keyword in .snippets files
+* Fix visual placeholder support
+* Add zero tabstop support
+* Support negative 'softtabstop'
+* Add g:snipMate_no_default_aliases option
+* Add <Plug>snipMateTrigger for triggering an expansion inside a snippet
+* Add snipMate#CanBeTriggered() function
+
+[ultisnips]: https://github.com/sirver/ultisnips
+[msanders]: https://github.com/msanders
+[garbas]: https://github.com/garbas
+[marcweber]: https://github.com/marcweber
+[ajzafar]: https://github.com/ajzafar
+[mw-utils]: https://github.com/marcweber/vim-addon-mw-utils
+[tlib]: https://github.com/tomtom/tlib_vim
+[vim-snippets]: https://github.com/honza/vim-snippets
+[vam]: https://github.com/marcweber/vim-addon-manager
+[pathogen]: https://github.com/tpope/vim-pathogen
+[vundle]: https://github.com/gmarik/vundle
+
+[143]: https://github.com/garbas/vim-snipmate/issues/143
+[177]: https://github.com/garbas/vim-snipmate/issues/177
+[178]: https://github.com/garbas/vim-snipmate/issues/178