Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
U

ultisnips

> 编程语言
Open source

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

7.7K stars0 likes0 views
WebsiteGitHub

About

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

UltiSnips

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

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, vim-easycomplete 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 has been maintaining UltiSnips again.

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 <tab> if you use one of the following:
" - https://github.com/Valloric/YouCompleteMe
" - https://github.com/nvim-lua/completion-nvim
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.

There are example uses for some power user features here:

  • Snippets Aliases
  • Dynamic Tabstops/Tabstop Generation

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.

  • Episode 1: What are snippets and do I need them?
  • Episode 2: Creating Basic Snippets
  • Episode 3: What's new in version 2.0
  • Episode 4: Python Interpolation

Also the excellent Vimcasts dedicated three episodes to UltiSnips:

  • Meet UltiSnips
  • Using Python interpolation in UltiSnips snippets
  • Using selected text in UltiSnips snippets

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Pythonpluginsnippetsultisnipsvim

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言