Vastly improved Javascript indentation and syntax support in Vim.
Clone or download
Latest commit dd84369 Aug 29, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
after/ftplugin fix ftplugin var and clean indent (#580) Jul 30, 2016
compiler compiler header Apr 22, 2017
extras Make inheritDoc match inheritdoc also (#1134) Jul 2, 2018
ftdetect Improve autocmd handling Jun 29, 2018
indent rf Cino Again (#1118) Apr 3, 2018
syntax Fixes #1123 (#1141) Aug 29, 2018 Update Sep 7, 2017 Revert "Documented new conceal options" Aug 21, 2018


JavaScript bundle for vim, this bundle provides syntax highlighting and improved indentation.


Install with pathogen

  git clone ~/.vim/bundle/vim-javascript

alternatively, use a package manager like vim-plug

Configuration Variables

The following variables control certain syntax highlighting plugins. You can add them to your .vimrc to enable their features.

let g:javascript_plugin_jsdoc = 1

Enables syntax highlighting for JSDocs.

Default Value: 0

let g:javascript_plugin_ngdoc = 1

Enables some additional syntax highlighting for NGDocs. Requires JSDoc plugin to be enabled as well.

Default Value: 0

let g:javascript_plugin_flow = 1

Enables syntax highlighting for Flow.

Default Value: 0

augroup javascript_folding
    au FileType javascript setlocal foldmethod=syntax
augroup END

Enables code folding for javascript based on our syntax file.

Please note this can have a dramatic effect on performance.

Concealing Characters

You can customize concealing characters, if your font provides the glyph you want, by defining one or more of the following variables:

let g:javascript_conceal_function             = "ƒ"
let g:javascript_conceal_null                 = "ø"
let g:javascript_conceal_this                 = "@"
let g:javascript_conceal_return               = "⇚"
let g:javascript_conceal_undefined            = "¿"
let g:javascript_conceal_NaN                  = "ℕ"
let g:javascript_conceal_prototype            = "¶"
let g:javascript_conceal_static               = "•"
let g:javascript_conceal_super                = "Ω"
let g:javascript_conceal_arrow_function       = "⇒"
let g:javascript_conceal_noarg_arrow_function = "🞅"
let g:javascript_conceal_underscore_arrow_function = "🞅"

You can enable concealing within VIM with:

set conceallevel=1

OR if you wish to toggle concealing you may wish to bind a command such as the following which will map <LEADER>l (leader is usually the \ key) to toggling conceal mode:

map <leader>l :exec &conceallevel ? "set conceallevel=0" : "set conceallevel=1"<CR>

Indentation Specific

  • :h cino-:
  • :h cino-=
  • :h cino-star
  • :h cino-(
  • :h cino-w
  • :h cino-W
  • :h cino-U
  • :h cino-m
  • :h cino-M
  • :h 'indentkeys'


Please follow the general code style guides (read the code) and in your pull request explain the reason for the proposed change and how it is valuable. All p.r.'s will be reviewed by a maintainer(s) then, hopefully, merged.

Thank you!


Distributed under the same terms as Vim itself. See :help license.