You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adam Stankiewicz 6a086b0c79 Fix many extensions detection 17 hours ago
.github Improve issue template 2 weeks ago
after Fix django highlighting, fixes #553 4 days ago
autoload Fix many extensions detection 17 hours ago
compiler Some major updates including heuristics 3 weeks ago
ctags Update 7 months ago
doc Change gitignore provider 3 days ago
extras Improve guard so it works for no eof new line 1 year ago
ftdetect Fix many extensions detection 17 hours ago
ftplugin Add missing filetypes for sql 18 hours ago
indent Add missing filetypes for sql 18 hours ago
scripts Fix many extensions detection 17 hours ago
syntax Add missing filetypes for sql 18 hours ago
tests Fix many extensions detection 17 hours ago
.gitignore Ignore auto-generated tags file 1 month ago
Makefile Fix some missing extensions warnings 19 hours ago Add missing filetypes for sql 18 hours ago
heuristics.yaml Improve django filetype detection, closes #560 3 days ago
packages.yaml Fix many extensions detection 17 hours ago
polyglot.vim Set indentation only locally, fixes #564 1 day ago


build Maintenance

A collection of language packs for Vim.

One to rule them all, one to find them, one to bring them all and in the darkness bind them.

  • It won’t affect your startup time, as scripts are loaded only on demand*.
  • It installs and updates 120+ times faster than the 202 packages it consists of.
  • It is more secure because scripts loaded for all extensions are generated by vim-polyglot (ftdetect).
  • Solid syntax and indentation support (other features skipped). Only the best language packs.
  • All unnecessary files are ignored (like enormous documentation from php support).
  • Automatically detect indentation (includes performance-optimized version of vim-sleuth)
  • Each build is tested by automated vimrunner script on CI. See spec directory.

*To be completely honest, optimized ftdetect script takes around 20ms to load.


  1. Install Pathogen, Vundle, NeoBundle, or Plug package manager for Vim.
  2. Use this repository as submodule or package.

For example when using Plug:

Plug 'sheerun/vim-polyglot'

Optionally download one of the releases and unpack it directly under ~/.vim directory.

You can also use Vim 8 built-in package manager:

mkdir -p ~/.vim/pack/default/start
git clone ~/.vim/pack/default/start/vim-polyglot

NOTE: Not all features of individual language packs are available. We strip them from functionality slowing vim startup (for example we ignore plugins folder that is loaded regardless of file type, instead we prefer ftplugin which is loaded lazily).

If you need full functionality of any plugin, please use it directly with your plugin manager.

Language packs


You can either wait for new patch release with updates or run make by yourself.


Please make sure you have syntax on in your .vimrc (or use something like sheerun/vimrc)

Individual language packs can be disabled by setting g:polyglot_disabled as follows:

let g:polyglot_disabled = ['markdown']

The list of available languages to disable is shown above.

Please declare this variable before polyglot is loaded (at the top of .vimrc)

If you wish to use filetype detection by Vim Polyglot but you’d like to use your own syntax-highlighting plugin, you can append .plugin to disabled entry, like below. Disabling Vim Polyglot filetype plugin won’t disable native Vim filetype plugin.

let g:polyglot_disabled = ['markdown.plugin']

Please note that disabling a language won’t make in your vim startup any faster / slower (only for specific this specific filetype). All plugins are lazily loaded only when they are really needed.

Vim Polyglot tries to automatically detect indentation settings (just like vim-sleuth). If this feature is not working for you for some reason, please file an issue and disable it temporarily with:

let g:polyglot_disabled = ['autoindent']


Language packs are periodically updated using automated scripts/build script.

Feel free to add your language to packages.yaml + heuristics.yaml, and send pull-request. You can run make test to run rough tests. And make dev for easy development.


See linked repositories for detailed license information. This repository is MIT-licensed.