Go to file
Holger Rapp 306f0ace5f Add a testing interface that works for Neovim.
- Remove support for python 3.2 to reduce number of test cases and because
  it actually fails with Neovim. It is not a supported version anyways.
- Due to Neovim not handling fast typing through the console properly
  (https://github.com/neovim/neovim/issues/2454), the typing is actually
  simulated through the Python client. We need to differentiate now if a
  keystroke is meant for the terminal or for the Vim session. Using
  neovim.input() introduces additional chances for races since inputs
  are not buffered but processed right away. This results in more
  retries for some tests.
- Neovim needs more parameters and configuration passed in through the
  test script. Added command line arguments for these.
- Skip an extra test under Neovim due to
  https://github.com/neovim/python-client/issues/128.
2015-07-14 21:58:30 +02:00
after/plugin Remove bootstrap.vim. Simplify startup. 2015-07-11 16:17:50 +02:00
autoload Only set autocommands when there are snippets. 2015-07-11 17:11:04 +02:00
ctags Support TagBar for snippets files 2014-07-05 19:36:38 -07:00
doc Add a warning about changing the buffer in autocommands. 2015-07-13 07:14:54 +02:00
ftdetect Only set autocommands when there are snippets. 2015-07-11 17:11:04 +02:00
ftplugin Tweak the ftplugin 2014-08-26 01:03:15 -07:00
plugin Only set autocommands when there are snippets. 2015-07-11 17:11:04 +02:00
pythonx/UltiSnips Fire autocommands when setting up and tearing down inner state 2015-07-13 07:11:39 +02:00
syntax Fix folding for snippet files. 2015-05-04 14:16:09 +08:00
test Add a testing interface that works for Neovim. 2015-07-14 21:58:30 +02:00
utils Applied pyformat on entire codebase. 2015-01-20 21:26:03 +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
.travis.yml Add a testing interface that works for Neovim. 2015-07-14 21:58:30 +02: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 Less verbose pylint errors. 2015-01-22 08:00:43 +01:00
README.md Add travis badge and try running on python3 too. 2015-02-14 15:20:55 +01:00
test_all.py Add a testing interface that works for Neovim. 2015-07-14 21:58:30 +02:00
travis_install.sh Add a testing interface that works for Neovim. 2015-07-14 21:58:30 +02:00
travis_test.sh Add a testing interface that works for Neovim. 2015-07-14 21:58:30 +02:00

Build Status Stories in Ready

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.