ultisnips

by SirVer

SirVer / ultisnips

UltiSnips - The ultimate snippet solution for Vim. Send pull requests to SirVer/ultisnips!

5.7K Stars 597 Forks Last release: 12 months ago (3.2) GNU General Public License v3.0 1.5K Commits 11 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Build Status Gitter

UltiSnips

UltiSnips is the ultimate solution for snippets in Vim. It has many features, speed being one of them.

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 deoplete, and more. 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.

UltiSnips was started in Jun 2009 by @SirVer. In Dec 2015, maintenance was handed over to @seletskiy who ran out of time in early 2017. Since Jun 2019, @SirVer is maintaining UltiSnips again on a very constraint time budget. If you can help triaging issues it would be greatly appreciated.

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. You need to change this to something other than if you use one of the following: " - https://github.com/Valloric/YouCompleteMe " - https://github.com/nvim-lua/completion-nvim let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger=""

" 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.

There are example uses for some power user features here:

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.

Also the excellent Vimcasts dedicated three episodes to UltiSnips:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.