AI code assistant plugin for Vim and Neovim that generates, edits and chats with OpenAI-compatible models from inside the editor.
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
Add the UltiSnips plugin line to your .vimrc using your plugin manager (the README uses Vundle)
- 2
Optionally add the honza/vim-snippets plugin for ready-made snippets
- 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
Neovim is a Vim-based text editor refactored for extensibility, with a Lua and RPC API that lets plugins and external UIs drive the editor.
A native macOS GUI for Neovim written in Swift, embedding the Neovim editor with Mac-style features like a file finder and workspaces.
A collection of ready-made Language Server Protocol configurations for connecting Neovim to many programming language servers.
A pure Lua Neovim plugin that replaces copilot.vim, providing GitHub Copilot inline suggestions, a suggestion panel, and an API for integrations.
A VS Code extension that embeds a real Neovim instance to provide full Vim keybindings and modes inside VS Code.