Go to file
Holger Rapp 1e6928d0a1 Merge pull request #276 from meonkeys/patch-1
README: adapt to Vundle interface change
2014-04-16 08:54:46 +02:00
after/plugin after script maps Keys again. Needed some refactorings. This fixes supertab integration and closes #212. 2014-02-17 08:15:04 +01:00
autoload Merged unite source by Skeept. 2014-04-15 08:19:23 +02:00
doc Merged unite source by Skeept. 2014-04-15 08:19:23 +02:00
ftdetect Add UltiSnipsFileType augroup and unset it if UltiSnips is disabled 2014-04-09 19:31:00 +02:00
ftplugin do not expand tabs in snippet files. 2013-06-10 18:34:38 +02:00
plugin Remove snipMate compatibility file. If at all, this should now live in vim-snippets. 2014-04-13 10:04:12 +02:00
pythonx/UltiSnips Ensure that _vim_{dec,enc} always succeeds on py3 2014-04-10 08:06:56 -05:00
syntax Adds 'priority' keyword and removes '!' option. 2014-02-19 21:04:52 +01:00
utils Fixes and improvements to snipmate conversion util by Steve McKinney 2012-11-24 10:32:00 +01:00
.bzrignore Ignore .bzr-repo 2010-03-05 14:31:40 +01:00
.gitignore Fixed ignored list in .gitignore 2011-12-30 08:20:54 +01:00
ChangeLog Update ChangeLog. 2014-03-22 11:06:24 +01:00
COPYING.txt Added a license file. 2013-10-29 07:22:06 +01:00
pylintrc Dedent visual line selections before using them. 2014-02-19 21:49:33 +01:00
README.md README: adapt to Vundle interface change 2014-04-15 08:47:51 -07:00
test.py simple test for unite interface 2014-04-12 21:02:11 -04:00

UltiSnips

UltiSnips is the ultimate solution for snippets in Vim. It has tons of features and is very fast.

GIF Demo

In this demo I am editing a python file. I first expand the #! snippet, then the class snippet. The completion menu comes from YouCompleteMe, UltiSnips also integrates with neocomplete. I can jump through placeholders and add text while the snippet inserts text in other places automatically: when I add Animal as a base class, __init__ gets updated to call the base class constructor. When I add arguments to the constructor, they automatically get assigned to instance variables. I then insert my personal snippet for print debugging. Note that I left insert mode, inserted another snippet and went back to add an additional argument to __init__ and the class snippet was still active and added another instance variable.

The official home of UltiSnips is at https://github.com/sirver/ultisnips. Please add pull requests and issues there.

Quick Start

This assumes you are using Vundle. Adapt for your plugin manager of choice. Put this into your .vimrc.

" Track the engine.
Plugin 'SirVer/ultisnips'

" Snippets are separated from the engine. Add this if you want them:
Plugin 'honza/vim-snippets'

" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"

" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"

UltiSnips comes with comprehensive documentation. As there are more options and tons of features I suggest you at least skim it.

Screencasts

From a gentle introduction to really advanced in a few minutes. The blog posts of the screencasts contain more advanced examples of the things discussed in the videos.