version 3.2 (05-Nov-2019): - This is the first release done again by @SirVer. And this is also posted on vim.org again. `¯\_(ツ)_/¯` - This is the last version to support Python 2. - Syntax highlighting improvements: a new one for unite & tweaks to others. - Support for transformations on multiple lines. - Python interpolation got more powerful, for example tabstops can now be modified in python interpolation, you can access the last changed placeholder text and more. - Support for deoplete. - Snippet files are no longer watched for changes. This increases performance, but also means that if you change your snippet files outside of Vim, UltiSnips will not know about it. You need to run `:call UltiSnips#RefreshSnippets()` or restart Vim. - Text objects for selecting snippets in visual mode: iS, aS version 3.1 (07-Dec-2015): - This is the last release done by @SirVer. The new maintainer of UltiSnips is @seletskiy. The repository remains https://github.com/SirVer/ultisnips, so this should not affect any users. This is also the last release to be published on vim.org. Please follow the master branch on GitHub for the latest stable version. - New option `e`: Context aware snippets. This gives very precise and powerful control over which snippet should be expanded depending on surrounding code. *UltiSnips-context-snippets* - New option `m`: Trim whitespace in all snippet lines. - Very powerful, freely configurable pre/post-expand and post-jump actions allow for transforming the buffer outside the snippet. *UltiSnips-snippet-actions* - Automatic triggering of snippets without the need to press the expand trigger. *UltiSnips-autotrigger* - Better error reporting for snippet errors including python stacktraces and listing of executed code. - Undo is more granular. Each jump and expand is now a separate undo step. - UltiSnips now emits autocommands on certain events. *UltiSnips-custom-autocommands* - clearsnippets now clears all snippets below the current priority. This fits better with the priority system introduced in 3.0. - snipMate snippets support can be disabled. *UltiSnipsEnableSnipMate* - UltiSnipsEditSplit got a new value 'context'. *UltiSnipsEditSplit* - Improved syntax highlighting for snippets filetype. - Mappings and autocommands are now only established when needed, i.e. when a snippet is active. This boosts performance outside of snippets. - New integration with Unite, TagBar, and deoplete. - New Ctags configuration file for snippet definitions. - Bug fixes, performance improvements, code cleanups and refactorings. - No longer supports Vim < 7.4. version 3.0 (02-Mar-2014): - Organisational changes: The project is now hosted on github. Snippets are now shipped separately - please track honza/vim-snippets. - UltiSnips is now a drop in replacement for snipMate - it parses snipMate snippets and expands them emulating snipMates smaller feature set. - Filetype tab completion for UltiSnipsEdit. - UltiSnipsEdit now only edits private snippet files. Use UltiSnipsEdit! if you want to edit shipped files. - New option 's' which strips trailing whitespace before jumping to next tabstop - New option 'a' which converts non-ascii characters into ascii characters in transformations. - New keyword in snippet files: priority defines which snippets should overwrite others. This deprecates the '!' option. *UltiSnips-adding-snippets* - Remove common whitespace of visual line selections before inserting in an indented tabstop. - Support for overwriting the snippet directory name on a per buffer basis to support per project snippets. *UltiSnips-snippet-search-path* - The keymaps for jumping in snippets are now only mapped when a snippet is active, allowing them to be used for something else otherwise. - Expanding and jumping no longer overwrites the unnamed register. - Integration with Valloric/YouCompleteMe and Shougo/neocomplete.vim. - Other plugins can add sources for snippets to create snippets on the fly. *UltiSnips-extending* - Vim functions now indicates if it did any work. *UltiSnips-trigger-functions* - For python extensions: UltiSnips adds itself to the sys.path and can be easily imported if it is available. *UltiSnips-python-module-path* - A new function giving programmatic access to the snippets currently available for expansion for other plugins integrating with UltiSnips. *UltiSnips_SnippetsInCurrentScope* - New or improved snippets (now in a different repo): all, bib, c, cpp, cs, d, django, eruby, go, haskell, html, html, htmljinja, java, javascript, js, ledger, ocaml, perl, php, puppet, python, ruby, scss, sh, tex, vim, xml, zsh. version 2.2 (01-Sep-2012): - Support to silence Python-not-found warnings. *UltiSnips-python-warning* - Matchit support for snippet files. - Improvements to syntax file. - Various smaller bug fixes. - New command to manually add a filetype to the list for the current buffer. *:UltiSnipsAddFiletypes* - New or improved snippets: all, snippets, haskell, bindzone, python, golang, json, html, coffee, coffee_jasmine, javascript_jasmine, ruby, php, markdown. version 2.1 (14-Feb-2012): - Python interpolation access to text from visual selection via snip.v. - Support for transformations of ${VISUAL} texts. - New or improved snippets: python, tex, texmath, ruby, rails, html, django version 2.0 (05-Feb-2012): - Backwards incompatible change: Support for normal mode editing. Snippets are no longer exited when leaving insert mode but only by leaving the text span of the snippets. This allows usage of normal mode commands and autoformatting. It also increases compatibility with other plugins. - Backwards incompatible change: Changed glob patterns for snippets to behave more like Vim *UltiSnips-adding-snippets* - Backwards incompatible change: Zero Tabstop is no longer removed in nested snippets - Support for ${VISUAL:default text} placeholder. *UltiSnips-visual-placeholder* - Improved handling of utf-8 characters in files and snippet definitions. - Full support for :py3. UltiSnips now works with python >= 2.6 or >= 3.2. - New or improved snippets: python, all version 1.6 (30-Dec-2011): - Significant speed improvements and a few bugs fixed. - Better handling of non ASCII chars in snippets by assuming UTF-8 encoding when no other information is available. - Contributions for UltiSnips are now also accepted on GitHub: https://github.com/SirVer/ultisnips/ - New or improved snippets: ruby, rails, xhtml version 1.5 (24-Sep-2011): - Some critical bug fixes for new vim versions. - New or improved snippets: tex, texmath, python, jinja2, go, puppet, xhtml - Configuration of search path for snippets *UltiSnips-snippet-search-path* - New parser implementation: A little faster, more flexible and less bugged. version 1.4 (17-Jul-2011): - New or improved snippets: php, html, djangohtml, mako, lua - Snippets are now listed alphabetically by their trigger, no longer in order of appearance - Snippet files are now automatically reloaded when they change. - Support for other directory names for snippets beside "UltiSnips" *UltiSnips-snippet-search-path* - Errors are now shown in a scratch window. - Now fully supports Windows with python >= 2.6. UltiSnips should now work on all systems that Vim runs on. - a syntax file was added for snippets files with nice highlighting. - snippets definition files now have the filetype 'snippets'. It used to be 'snippet'. version 1.3 (14-Feb-2011): - Erlang snippets (g0rdin) - Other VimScripts can now define and immediately expand anonymous snippets ( *UltiSnips_Anon* ) (Ryan Wooden) - Other VimScripts can now define new snippets via a function ( *UltiSnips_AddSnippet* ) (Ryan Wooden) - New Snippets for eruby and rails (Ches Martin). - A new Option 't' has been added to snippets that avoid expanding tabstops. Be also more consistent with how indenting is handled. (Ryan Wooden) - Added a ftplugin script for .snippets files. Syntax highlighting still missing. (Rupa Deadwyler) - Added UltiSnipsReset and UltiSnipsEdit (Idea by JCEB) version 1.2 (24-Aug-2010): - many bugs were fixed - smode mappings for printable characters are now removed before expanding a snippet. This is configurable. *UltiSnips-warning-smappings* - all shipped snippets are now fully compatible with UltiSnips - added support for global snippets which enhance python interpolation even more *UltiSnips-globals* - added support for multi word and regular expression triggers. Very powerful in combination with python interpolation. - Python interpolation became much more powerful *UltiSnips-python* - added support for clearsnippets command *UltiSnips-clearing-snippets* - added support for option w which is a little more strict than i. - added support for listing of valid triggers. Defaults to . - added support for option i (inword expansion) - extends keyword is now supported on the first line of snippet files. This makes it easy to define special cases, for example cpp extends c: a cpp trigger is useless in c, but a c trigger is valuable for cpp. - UltiSnips now adheres to expandtab and tabstop options of vim version 1.1 (21-Jul-2009): - Made triggers configurable. You can also use the same trigger for expanding and tabbing. The TextMate configuration and is now possible. - Conditional Inserts can now be nested - Added support for b option. This only considers a snippet at the beginning of a line ( *UltiSnips-adding-snippets* ) - Added support for ! option. This overwrites previously defined snippets with the same tab trigger ( *UltiSnips-adding-snippets* ) - Support for dotted filetype syntax. Now snippets for more than one filetype can be active ( *UltiSnips-adding-snippets* )