GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - SirVer/ultisnips: UltiSnips - The ultimate snippet solution for Vim. Send pull requests to SirVer/ultisnips!

BranchesTags
Open more actions menu

Latest commit

 

History

1,682 Commits
1,682 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
after/plugin
after/plugin
 
 
autoload
autoload
 
 
ctags
ctags
 
 
doc
doc
 
 
docker
docker
 
 
docs
docs
 
 
ftdetect
ftdetect
 
 
ftplugin
ftplugin
 
 
lua/ultisnips
lua/ultisnips
 
 
plugin
plugin
 
 
pythonx
pythonx
 
 
rplugin/python3/deoplete/sources
rplugin/python3/deoplete/sources
 
 
scripts
scripts
 
 
syntax
syntax
 
 
test
test
 
 
.gitignore
.gitignore
 
 
CLAUDE.md
CLAUDE.md
 
 
COPYING.txt
COPYING.txt
 
 
ChangeLog
ChangeLog
 
 
Dockerfile
Dockerfile
 
 
Dockerfile.nvim
Dockerfile.nvim
 
 
Dockerfile.repro
Dockerfile.repro
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 
test_all.py
test_all.py
 
 
uv.lock
uv.lock
 
 

Repository files navigation

Build Status Gitter

UltiSnips

UltiSnips is the ultimate solution for snippets in Vim and Neovim. 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, 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

About

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

Topics

pluginsnippetsultisnipsvim

Resources

Readme
GPL-3.0 license

Contributing

Contributing
Activity

Stars

7.7k stars

Watchers

82 watching

Forks

675 forks
Report repository

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.