Repolode
SirVer

SirVer/ultisnips

A snippet engine for Vim and Neovim that expands triggers into templates with tabstops, placeholders and Python-scripted logic.

Stars
7,697
Forks
675
Open issues
0
Last commit
2 months ago

What is it?

UltiSnips is a snippet engine for Vim and Neovim. You type a short trigger word, press a key, and it expands into a larger block of text, such as a class skeleton or a debug print statement. Snippets can define multiple tabstops that you jump between, and placeholders whose values update automatically when another placeholder changes.

Snippets are written in a dedicated snippet file format, and can embed Python code that runs during expansion to compute text dynamically. The engine is separate from the snippet collections, so you install it alongside a snippet library or write your own. It integrates with completion plugins such as YouCompleteMe and deoplete, and the trigger keys are configurable through Vim variables.

Key features

  • 01Expands trigger words into multi-line snippets in Vim and Neovim.
  • 02Supports multiple tabstops and linked placeholders that update together.
  • 03Lets snippets run embedded Python code during expansion.
  • 04Integrates with completion plugins such as YouCompleteMe and deoplete.
  • 05Trigger and jump keys are configurable.

Use cases

  • Inserting boilerplate such as class, function or license headers while editing code in Vim.
  • Building a personal library of snippets for repeated coding patterns.
  • Generating code whose parts depend on earlier input, using Python logic in snippets.

Quick start

  1. 1

    Add the UltiSnips plugin line to your .vimrc using your plugin manager (the README uses Vundle)

  2. 2

    Optionally add the honza/vim-snippets plugin for ready-made snippets

  3. 3

    Set the expand and jump trigger keys in .vimrc, changing <tab> if you use YouCompleteMe or completion-nvim

Things to know

  • Licensed under GPL-3.0, a copyleft license that requires derivative works to be open-sourced under the same terms.
  • Works only inside Vim and Neovim, so it is not a standalone tool.

Topics

FAQ

What is ultisnips?
A snippet engine for Vim and Neovim that expands triggers into templates with tabstops, placeholders and Python-scripted logic. UltiSnips is a snippet engine for Vim and Neovim. You type a short trigger word, press a key, and it expands into a larger block of text, such as a class skeleton or a debug print statement. Snippets can define multiple tabstops that you jump between, and placeholders whose values update automatically when another placeholder changes.
Is ultisnips free to use? What license does it have?
ultisnips is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
Is ultisnips still maintained?
Updated within 6 months. The last commit to ultisnips was on Sep 6, 2026.
What can I use ultisnips for?
Inserting boilerplate such as class, function or license headers while editing code in Vim. Building a personal library of snippets for repeated coding patterns. Generating code whose parts depend on earlier input, using Python logic in snippets.
How do I install ultisnips?
Add the UltiSnips plugin line to your .vimrc using your plugin manager (the README uses Vundle) Optionally add the honza/vim-snippets plugin for ready-made snippets Set the expand and jump trigger keys in .vimrc, changing <tab> if you use YouCompleteMe or completion-nvim
Where can I get ultisnips?
The source code and installation instructions are on GitHub: https://github.com/SirVer/ultisnips

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects