finds.dev← search

// the find

mattn/emmet-vim

★ 6,465 · Vim Script · MIT · updated Mar 2026

emmet for vim: http://emmet.io/

emmet-vim ports the Emmet abbreviation-expansion workflow into Vim, letting you type `ul>li*5` and expand it to a full HTML list with a keypress. It's been around since the zen-coding days and is the de facto option for Vim users who want Emmet-style HTML/CSS expansion. If you write a lot of HTML in Vim and aren't using a full LSP-powered setup, this is the plugin for the job.

Language coverage is solid — separate autoload modules for HTML, CSS, SASS/SCSS, LESS, Haml, Slim, Jade, and Elm, so it's not just an HTML-only tool. The snippet system is configurable via a JSON file (with webapi-vim) or inline VimScript, giving you control over generated boilerplate without forking the plugin. Travis CI and a themis-based test suite exist, which is more discipline than most Vim plugins of this age bother with. The plugin is genuinely mature: edge cases like `timeoutlen=0` conflicts are documented in the FAQ rather than left for users to debug.

The CI badge links to Travis CI, which has been effectively dead for open-source projects since 2021 — unclear if the test suite is actually running anywhere. Custom snippets require installing a second plugin (webapi-vim) as a dependency, which is a hidden prerequisite that the README buries. Neovim users in 2026 are largely better served by nvim-treesitter and LSP-based completions; emmet-vim works in Neovim but the Lua file in the repo is minimal and there's no tree-sitter integration. The trigger key design — `<C-y>,` as a two-key chord — clashes with enough other plugins that remapping it is almost mandatory, and the trailing comma requirement is a footgun that trips up new users.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →