vim-polyglot

by sheerun

sheerun / vim-polyglot

A solid language pack for Vim.

3.9K Stars 223 Forks Last release: about 18 hours ago (v4.15.0) 757 Commits 142 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

vim-polyglot

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 <!--Package Count-->598<!--/Package Count--> packages it consists of.
  • It is also more secure (scripts loaded for every filetype are generated by vim-polyglot)
  • Best syntax and indentation support (no other features). Hand-selected language packs.
  • Automatically detects indentation (includes performance-optimized version of vim-sleuth, can be disabled)
  • Includes some defaults from vim-sensible, which are usually necessary for editing in any language (can be disabled)

*To be completely honest, optimized

ftdetect
script takes around
10ms
to load.

Installation

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

For example when using Plug (which I recommend):

set nocompatible

call plug#begin()

Plug 'sheerun/vim-polyglot'

call plug#end()

Optionally download one of the releases and unpack it directly under

~/.vim
directory.

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

git clone --depth 1 https://github.com/sheerun/vim-polyglot ~/.vim/pack/plugins/start/vim-polyglot

Language packs

On top of all language packs from vim repository, vim-polyglot includes:

  • acpiasl (Syntax highlighting for asl and dsl files)
  • ansible
  • apiblueprint (API Blueprint syntax highlighting for apib files)
  • applescript (AppleScript syntax highlighting for applescript and scpt files)
  • arduino (Processing syntax highlighting for pde and ino files)
  • asciidoc (AsciiDoc syntax highlighting for asciidoc, adoc and asc files)
  • autohotkey (AutoHotkey syntax highlighting for ahk and ahkl files)
  • blade (Blade syntax highlighting for blade and blade.php files)
  • brewfile
  • c/c++ (C++ and C syntax highlighting for cpp, c++, cc, cp, cxx and 17 more files)
  • caddyfile
  • carp (Syntax highlighting for carp files)
  • cjsx
  • clojure (Clojure syntax highlighting for clj, boot, cl2, cljc, cljs, cljs.hl, cljscm, cljx, hic and edn files)
  • cmake (CMake syntax highlighting for cmake and cmake.in files)
  • coffee-script (CoffeeScript and Literate CoffeeScript syntax highlighting for coffee, cake, cjsx, iced, coffeekup, litcoffee and coffee.md files)
  • cpp-modern
  • cql (Syntax highlighting for cql files)
  • cryptol (Syntax highlighting for cry, cyl, lcry and lcyl files)
  • crystal (Crystal and HTML+ECR syntax highlighting for cr and ecr files)
  • csv (CSV syntax highlighting for csv, tsv and tab files)
  • cucumber (Gherkin syntax highlighting for feature and story files)
  • cue (Syntax highlighting for cue files)
  • dart (Dart syntax highlighting for dart and drt files)
  • dhall (Dhall syntax highlighting for dhall files)
  • dlang (D syntax highlighting for d, di, lst, dd, ddoc and sdl files)
  • docker-compose
  • elixir (Elixir and HTML+EEX syntax highlighting for ex, exs, eex and leex files)
  • elm (Elm syntax highlighting for elm files)
  • emberscript (EmberScript syntax highlighting for em and emberscript files)
  • emblem (Syntax highlighting for emblem and em files)
  • erlang (Erlang syntax highlighting for erl, app.src, es, escript, hrl, xrl, yrl, app and yaws files)
  • fennel (Syntax highlighting for fnl files)
  • ferm (Syntax highlighting for ferm files)
  • fish (fish syntax highlighting for fish files)
  • flatbuffers (Syntax highlighting for fbs files)
  • fsharp (F# syntax highlighting for fs, fsi and fsx files)
  • gdscript (GDScript syntax highlighting for gd files)
  • git (Git Config syntax highlighting for gitconfig files)
  • gitignore
  • glsl (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 16 more files)
  • gmpl (Syntax highlighting for mod files)
  • gnuplot (Gnuplot syntax highlighting for gp, gnu, gnuplot, p, plot, plt and gpi files)
  • go (Go syntax highlighting for go and tmpl files)
  • gradle
  • graphql (GraphQL syntax highlighting for graphql, gql and graphqls files)
  • haml (Haml syntax highlighting for haml, haml.deface, hamlc and hamlbars files)
  • handlebars (Mustache and Handlebars syntax highlighting for mustache, hogan, hulk, hjs, handlebars, hbs, hdbs and hb files)
  • haproxy (HAProxy syntax highlighting)
  • haskell (Haskell syntax highlighting for hs, hs-boot, hsc, bpk and hsig files)
  • haxe (Haxe syntax highlighting for hx and hxsl files)
  • hcl (HCL syntax highlighting for hcl, nomad and workflow files)
  • helm
  • help
  • hive (HiveQL syntax highlighting for q, hql and ql files)
  • html5
  • i3 (Syntax highlighting for i3.config and i3config files)
  • icalendar (Syntax highlighting for ics files)
  • idris2 (Syntax highlighting for idr, ipkg and lidr files)
  • idris (Idris syntax highlighting for idr and lidr files)
  • ion (Syntax highlighting for ion files)
  • javascript-sql
  • javascript (JavaScript syntax highlighting for js, bones, cjs, es, es6 and 17 more files)
  • jenkins (Syntax highlighting for jenkinsfile and Jenkinsfile files)
  • jq (JSONiq syntax highlighting for jq files)
  • json5 (JSON5 syntax highlighting for json5 files)
  • json (JSON syntax highlighting for json, avsc, geojson, gltf, har and 13 more files)
  • jsonnet (Jsonnet syntax highlighting for jsonnet and libsonnet files)
  • jst (EJS syntax highlighting for ejs, ect and jst files)
  • jsx (JSX syntax highlighting for jsx files)
  • julia (Julia syntax highlighting for jl files)
  • kotlin (Kotlin syntax highlighting for kt, ktm and kts files)
  • ledger (Syntax highlighting for ldg, ledger and journal files)
  • lilypond (LilyPond syntax highlighting for ly and ily files)
  • livescript (LiveScript syntax highlighting for ls files)
  • llvm (LLVM syntax highlighting for ll and td files)
  • log (Syntax highlighting for log and LOG files)
  • lua (Lua syntax highlighting for lua, fcgi, nse, p8, rbxs, rockspec and wlua files)
  • mako (Mako syntax highlighting for mako and mao files)
  • markdown (Markdown syntax highlighting for md, markdown, mdown, mdwn, mkd, mkdn, mkdown, ronn and workbook files)
  • mathematica (Mathematica syntax highlighting for mathematica, cdf, m, ma, mt and 6 more files)
  • mdx (Syntax highlighting for mdx files)
  • meson (Meson syntax highlighting for wrap files)
  • moonscript (MoonScript syntax highlighting for moon files)
  • nginx (Nginx syntax highlighting for nginx, nginxconf and vhost files)
  • nim (Nim syntax highlighting for nim, nim.cfg, nimble, nimrod and nims files)
  • nix (Nix syntax highlighting for nix files)
  • objc (Objective-C syntax highlighting for m and h files)
  • ocaml (OCaml syntax highlighting for ml, eliom, eliomi, ml4, mli and 13 more files)
  • octave (Syntax highlighting for oct and m files)
  • odin (Odin syntax highlighting for odin files)
  • opencl (OpenCL syntax highlighting for cl and opencl files)
  • perl (Perl syntax highlighting for pl, al, cgi, fcgi, perl and 12 more files)
  • pgsql (PLpgSQL syntax highlighting for pgsql files)
  • php (PHP syntax highlighting for php, aw, ctp, fcgi, inc and 7 more files)
  • plantuml (PlantUML syntax highlighting for puml, iuml, plantuml, uml and pu files)
  • pony (Pony syntax highlighting for pony files)
  • powershell (PowerShell syntax highlighting for ps1, psd1, psm1, pssc and ps1xml files)
  • protobuf (Protocol Buffer syntax highlighting for proto files)
  • pug (Pug syntax highlighting for jade and pug files)
  • puppet (Puppet syntax highlighting for pp and epp files)
  • purescript (PureScript syntax highlighting for purs files)
  • python-compiler
  • python-indent
  • python (Python syntax highlighting for py, cgi, fcgi, gyp, gypi and 14 more files)
  • qmake (QMake syntax highlighting for pro and pri files)
  • qml (QML syntax highlighting for qml and qbs files)
  • r-lang (R syntax highlighting for r, rsx, s, S and rd files)
  • racket (Racket syntax highlighting for rkt, rktd, rktl and scrbl files)
  • ragel (Ragel syntax highlighting for rl files)
  • raku (Raku syntax highlighting for 6pl, 6pm, nqp, p6, p6l and 12 more files)
  • raml (RAML syntax highlighting for raml files)
  • razor (HTML+Razor syntax highlighting for cshtml and razor files)
  • reason (Reason syntax highlighting for re and rei files)
  • requirements (Syntax highlighting for pip files)
  • rspec
  • rst (reStructuredText syntax highlighting for rst, rest, rest.txt and rst.txt files)
  • ruby (Ruby and HTML+ERB syntax highlighting for rb, builder, eye, fcgi, gemspec and 25 more files)
  • rust (Rust syntax highlighting for rs and rs.in files)
  • scala (Scala syntax highlighting for scala, kojo and sc files)
  • scss (SCSS syntax highlighting for scss files)
  • sh (Shell syntax highlighting for sh, bash, bats, cgi, command and 7 more files)
  • slim (Slim syntax highlighting for slim files)
  • slime (Syntax highlighting for slime files)
  • smt2 (SMT syntax highlighting for smt2 and smt files)
  • solidity (Solidity syntax highlighting for sol files)
  • stylus (Stylus syntax highlighting for styl and stylus files)
  • svelte (Svelte syntax highlighting for svelte files)
  • svg-indent
  • svg (SVG syntax highlighting for svg files)
  • swift (Swift syntax highlighting for swift files)
  • sxhkd (Syntax highlighting for sxhkdrc files)
  • systemd (Syntax highlighting for automount, dnssd, link, mount, netdev and 9 more files)
  • textile (Textile syntax highlighting for textile files)
  • thrift (Thrift syntax highlighting for thrift files)
  • tmux
  • toml (TOML syntax highlighting for toml files)
  • tptp (Syntax highlighting for p, tptp and ax files)
  • twig (Twig syntax highlighting for twig and xml.twig files)
  • typescript (TypeScript and TSX syntax highlighting for ts and tsx files)
  • unison (Syntax highlighting for u and uu files)
  • v (V syntax highlighting for v, vv and vsh files)
  • vala (Vala syntax highlighting for vala, vapi and valadoc files)
  • vbnet (Visual Basic .NET syntax highlighting for vb and vbhtml files)
  • vcl (VCL syntax highlighting for vcl files)
  • velocity (Syntax highlighting for vm files)
  • vue (Vue syntax highlighting for vue and wpy files)
  • xdc (Syntax highlighting for xdc files)
  • xml (XML syntax highlighting for xml, adml, admx, ant, axml and 93 more files)
  • xsl (XSLT syntax highlighting for xslt and xsl files)
  • yard
  • zephir (Zephir syntax highlighting for zep files)
  • zig (Zig syntax highlighting for zir, zig and zir files)
  • zinit <!--/Language Packs-->

Updating

You can either wait for new patch release with updates or run

make
by yourself.

Troubleshooting

Please make sure you have

set nocompatible
in your
.vimrc
(or use something like sheerun/vimrc)

Individual language packs can be disabled by setting

g:polyglot_disabled
as follows:

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

let g:polyglot_disabled = ['markdown']

The list of available languages to disable is shown above.

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.

Autoindent

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']

Default settings

Vim Polyglot includes vim-sensible plugin, which is usually necessary for editing any language. This can be disabled with:

let g:polyglot_disabled = ['sensible']

Contributing

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.

License

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.