# vim-polyglot/vim-polyglot

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/vim-polyglot-vim-polyglot).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

5,710 stars · 305 forks · Vim Script

## Links

- GitHub: https://github.com/vim-polyglot/vim-polyglot
- awesome-repositories: https://awesome-repositories.com/repository/vim-polyglot-vim-polyglot.md

## Topics

`language-packs` `plugin` `vim`

## Description

vim-polyglot is a bundled collection of hand-selected language packs for Vim. A single install supplies syntax coloring, indentation rules, and filetype detection for hundreds of programming, markup, and configuration languages, so users don't have to track down separate plugins for each one.

Language scripts load only when a file of the matching type is opened, which keeps editor startup steady despite the number of included packs. Filetype detection matches file names, extensions, and path patterns, and it can resolve ambiguous extensions such as .h or .m by inspecting file contents or using configured preferences. When automatic detection guesses wrong, a syntax menu allows manual selection. Individual language packs or features can be switched off through a single exclusion list, and custom overrides go in a directory that loads after the bundled files, so the original packs stay untouched.

Beyond highlighting and indentation, the bundle includes per-language scripts for completion, formatting, folding, and helper commands in languages such as Ruby, Rust, HTML, Clojure, and Julia. Other pieces include automatic indentation-style detection, optional baseline editor defaults, LaTeX-to-Unicode input for Julia, ctags definitions, and tailored settings for system and tool configuration formats like fstab, git config, Dockerfiles, and Ansible inventories.

The bundle is generated by a build script that can rerun automatically when files change in development mode. A test suite checks filetype detection and indentation behavior, and compares results against Vim's native support.

## Tags

### Development Tools & Productivity

- [Language Pack Bundles](https://awesome-repositories.com/f/development-tools-productivity/language-pack-bundles.md) — A bundled collection of hand-selected Vim language packs that supplies syntax coloring, indentation rules and filetype detection for hundreds of programming, markup and configuration languages from a single install. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/README.md))
- [Syntax Highlighting Packs](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/syntax-highlighting-packs.md) — Bundles syntax definitions for a very large set of programming, markup, and configuration languages so files are colored correctly from one install. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/packages.yaml))
- [Ambiguous Extension Resolution](https://awesome-repositories.com/f/development-tools-productivity/ambiguous-extension-resolution.md) — Resolves ambiguous extensions such as .h or .m by inspecting file contents or using configured preferences to pick the right language. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/heuristics.yaml))
- [Filetype Detection Rules](https://awesome-repositories.com/f/development-tools-productivity/filetype-detection-rules.md) — Assigns the correct language to each opened file by matching its name, extension, or path against bundled detection rules. ([source](https://github.com/vim-polyglot/vim-polyglot/tree/master/ftdetect))
- [Lazy Language Pack Loading](https://awesome-repositories.com/f/development-tools-productivity/lazy-language-pack-loading.md) — Loads each language's scripts only when a matching file type is opened, so adding many languages never slows editor startup. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/README.md))
- [Vim Plugins](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins.md) — Installs as a single Vim extension that supplies syntax coloring, indentation, and filetype detection for hundreds of languages without separate plugins.
- [Filetype Detection Plugins](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/filetype-detection-plugins.md) — Matches file names, extensions, and path patterns to filetypes so the right syntax and indentation settings load automatically.
- [Editor Startup Optimization](https://awesome-repositories.com/f/development-tools-productivity/editor-startup-optimization.md) — Keeps Vim launching quickly with many language packs installed by loading each language's scripts only when needed.
- [Filetype Detection Rules](https://awesome-repositories.com/f/development-tools-productivity/file-extension-language-mappings/filetype-detection-rules.md) — Matches file extensions, exact filenames, and path patterns such as config files and makefiles to the right language automatically. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/packages.yaml))
- [Filetype Detection Overrides](https://awesome-repositories.com/f/development-tools-productivity/filetype-detection-overrides.md) — Lets users steer detection of files with shared extensions toward the preferred or installed syntax through flags and per-language disable settings. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/heuristics.yaml))
- [Generated Filetype Detection Scripts](https://awesome-repositories.com/f/development-tools-productivity/generated-filetype-detection-scripts.md) — Generates optimized detection scripts so language support loads only when a matching file is opened, keeping startup steady. ([source](https://github.com/vim-polyglot/vim-polyglot#readme))
- [Indentation Rules](https://awesome-repositories.com/f/development-tools-productivity/indentation-rules.md) — Includes per-language indentation rules so new lines and reformatting follow each language's conventions automatically. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/packages.yaml))
- [Language Pack Exclusions](https://awesome-repositories.com/f/development-tools-productivity/language-pack-exclusions.md) — Lets users switch off individual language packs or features such as autoindent, defaults, and filetype detection through one exclusion list. ([source](https://github.com/vim-polyglot/vim-polyglot/blob/master/README.md))
- [Markup and Config Syntax Definitions](https://awesome-repositories.com/f/development-tools-productivity/markup-and-config-syntax-definitions.md) — Ships a dedicated syntax file for each markup, configuration, and build format such as HTML, CSS, and Apache configs. ([source](https://github.com/vim-polyglot/vim-polyglot/tree/master/syntax))
- [Per-Filetype Settings](https://awesome-repositories.com/f/development-tools-productivity/per-filetype-settings.md) — Applies per-language settings such as comment formats, indentation options, and editing defaults automatically when a file of a recognized type is opened. ([source](https://github.com/vim-polyglot/vim-polyglot/tree/master/ftplugin))
- [Plugin Feature Toggles and Overrides](https://awesome-repositories.com/f/development-tools-productivity/plugin-feature-toggles-and-overrides.md) — Lets users disable language packs or features through one exclusion list and add overrides that load after bundled files.
- [Indentation Management](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/indentation-management.md) — Detects a file's indentation style by inspecting its contents and applies matching settings using an optimized built-in detection plugin. ([source](https://github.com/vim-polyglot/vim-polyglot#readme))
- [Lazy-Loaded Plugin Bundles](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/lazy-loaded-plugin-bundles.md) — Generates optimized detection scripts so language support loads only when a matching file opens, keeping startup steady despite hundreds of packs.

### DevOps & Infrastructure

- [Plugin & Language Pack Bundling](https://awesome-repositories.com/f/devops-infrastructure/distribution-packaging/plugin-packaging/plugin-language-pack-bundling.md) — Bundles hundreds of hand-selected language packs supplying syntax coloring, indentation, and filetype detection through a single install. ([source](https://github.com/vim-polyglot/vim-polyglot#readme))

### User Interface & Experience

- [Code Syntax Highlighting](https://awesome-repositories.com/f/user-interface-experience/code-syntax-highlighting.md) — Colors keywords, strings, comments, and other tokens in source files using per-language syntax definitions across many bundled languages. ([source](https://github.com/vim-polyglot/vim-polyglot/tree/master/syntax))
- [Syntax Language Selectors](https://awesome-repositories.com/f/user-interface-experience/syntax-language-selectors.md) — Provides a graphical syntax menu to manually pick a language when automatic detection is wrong or missing. ([source](https://github.com/vim-polyglot/vim-polyglot/tree/master/extras))

### Programming Languages & Runtimes

- [Ambiguous Extension Resolution](https://awesome-repositories.com/f/programming-languages-runtimes/filetype-aware-syntax-support/ambiguous-extension-resolution.md) — Resolves ambiguous extensions such as .h or .m by inspecting file contents or configured preferences, with a syntax menu for manual selection.

### Software Engineering & Architecture

- [Language-Specific Formatting Overrides](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/domain-specific/language-support-definitions/language-parsing-rules/language-specific-formatting-overrides.md) — Lets users override language-specific behavior with custom files in a directory loaded after the bundled files, leaving original packs untouched. ([source](https://github.com/vim-polyglot/vim-polyglot/tree/master/after))
