sponsor Vim development Vim logo Vim Book Ad

vim-prettier : A vim plugin wrapper for prettier

 script karma  Rating 63/20, Downloaded by 353    Comments, bugs, improvements  Vim wiki

created by
mtermayer reis
script type
## vim-prettier

A vim plugin wrapper for prettier, pre-configured with custom default prettier settings.

**Note:** requires `prettier` version 1.7.0+

By default it will auto format **javascript**, **typescript**, **less**, **scss**, **css**, **json**, and **graphql** files that have "@format" annotation in the header of the file.

### Prettier Executable resolution

When installed via vim-plug, a default prettier executable is installed inside vim-prettier.

vim-prettier executable resolution:

1. Traverse parents and search for Prettier installation inside `node_modules`
2. Look for a global prettier installation
3. Use locally installed vim-prettier prettier executable


Prettier by default will run on auto save but can also be manually triggered by:



If your are on vim 8+ you can also trigger async formatting by:


You can check what is the `vim-prettier` plugin version by:


You can send commands to the resolved `prettier` cli by:

:PrettierCli <q-args>

You can check what is the resolved `prettier` cli path by:


You can check what is the resolved `prettier` cli version by:

### Configuration

Disable auto formatting of files that have "@format" tag

let g:prettier#autoformat = 0

The command `:Prettier` by default is synchronous but can also be forced async

let g:prettier#exec_cmd_async = 1

By default parsing errors will open the quickfix but can also be disabled

let g:prettier#quickfix_enabled = 0

To enable vim-prettier to run in files without requiring the "@format" doc tag.
First disable the default autoformat, then update to your own custom behaviour

Running before saving sync:

let g:prettier#autoformat = 0
autocmd BufWritePre *.js,*.json,*.css,*.scss,*.less,*.graphql Prettier

Running before saving async (vim 8+):

let g:prettier#autoformat = 0
autocmd BufWritePre *.js,*.json,*.css,*.scss,*.less,*.graphql PrettierAsync

Running before saving, changing text or leaving insert mode:

" when running at every change you may want to disable quickfix
let g:prettier#quickfix_enabled = 0

let g:prettier#autoformat = 0
autocmd BufWritePre,TextChanged,InsertLeave *.js,*.json,*.css,*.scss,*.less,*.graphql PrettierAsync

### Overwrite default prettier configuration

**Note:** vim-prettier default settings differ from prettier intentionally.

" max line length that prettier will wrap on
g:prettier#config#print_width = 80

" number of spaces per indentation level
g:prettier#config#tab_width = 2

" use tabs over spaces
g:prettier#config#use_tabs = 'false'

" print semicolons
g:prettier#config#semi = 'true'

" single quotes over double quotes
g:prettier#config#single_quote = 'true'

" print spaces between brackets
g:prettier#config#bracket_spacing = 'false'

" put > on the last line instead of new line
g:prettier#config#jsx_bracket_same_line = 'true'

" none|es5|all
g:prettier#config#trailing_comma = 'all'

" flow|babylon|typescript|postcss|json|graphql
g:prettier#config#parser = 'flow'

" cli-override|file-override|prefer-file
g:prettier#config#config_precedence = 'prefer-file'


If prettier installation can't be found no code formatting will happen
install details

Install with [vim-plug](https://github.com/junegunn/vim-plug), assumes node and yarn|npm installed globally.

" post install (yarn install | npm install) then load plugin only for editing supported files
Plug 'prettier/vim-prettier', {
\ 'do': 'yarn install',
\ 'for': ['javascript', 'typescript', 'css', 'less', 'scss', 'json', 'graphql'] }

If using other vim plugin managers or doing manual setup make sure to have `prettier` installed globally or go to your vim-prettier directory and either do `npm install` or `yarn install`

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
vim-prettier-0.1.1.zip 0.1.1 2017-09-18 7.4 mtermayer reis feature: Adding new commands

- `:PrettierVersion` - prints the `vim-prettier` plugin version
- `:PrettierCli <q-args>` - send commands to the resolved `prettier` cli
- `:PrettierCliPath` - check what is the resolved `prettier` cli path
- `:PrettierCliVersion` - check what is the resolved `prettier` cli version

vim-prettier-0.1.0.zip 0.1.0 2017-09-17 7.4 mtermayer reis Breaking Change: requires prettier 1.7+
feature: adding support for prettier 1.7
feature: adds support for prettier custom configuration '.prettierrc' - refer to prettier website
vim-prettier-0.0.15.zip 0.0.15 2017-08-30 7.4 mtermayer reis bugfix: after formatting making sure cursor jump history does not take cursor to first line of file
vim-prettier-0.0.14.zip 0.0.14 2017-08-24 7.4 mtermayer reis bugfix: fixing support for :PrettierAsync for windows users
vim-prettier-0.0.13.zip 0.0.13 2017-08-13 7.4 mtermayer reis bugfix: making sure quickfix errors are only cleared if opened by vim-prettier itself
vim-prettier-0.0.12.zip 0.0.12 2017-08-06 7.4 mtermayer reis feature: Bumping internal prettier version to 1.5.3
vim-prettier-0.0.11.zip 0.0.11 2017-07-12 7.4 mtermayer reis feature: Adding support for vim 7.4
vim-prettier-0.0.10.zip 0.0.10 2017-07-02 8.0 mtermayer reis bugfix: fixing bug where json parser could create invalid json by adding extra comma to the end
vim-prettier-0.0.9.zip 0.0.9 2017-07-01 8.0 mtermayer reis feature: file type detection support
vim-prettier-0.0.8.zip 0.0.8 2017-07-01 8.0 mtermayer reis feature: Adding support for JSON and GraphQL formatting
vim-prettier-0.0.7.zip 0.0.7 2017-06-20 8.0 mtermayer reis feature: enabling partial buffer conversion when using visual selection
vim-prettier-0.0.6.zip 0.0.6 2017-06-07 8.0 mtermayer reis feature: Adding configuration toggle for controlling error quick fix parsing
feature: Adding PrettierAsync command
bugfix: Fixing configuration bug where boolean values where not correctly  parsed
bugfix: Making sure that async jobs do not execute if already in progress
vim-prettier-0.0.5.zip 0.0.5 2017-06-06 8.0 mtermayer reis feature: Bumping support to latest prettier ^1.4.X
feature:  Support for formatting css, scss, less, typescript
feature:  Allowing user configuration setting to enable async as the default for the `:Prettier` command
vim-prettier-0.0.4.zip 0.0.4 2017-05-31 8.0 mtermayer reis feature: Adding support for error parsing on quickfix
vim-prettier-0.0.3.zip 0.0.3 2017-05-28 8.0 mtermayer reis feature: Adding support for Async formatting  and making it default for auto save
bugfix: Fixing params sent to prettier CLI
bugfix: Fix bug where default prettier plugin installation path was never used
vim-prettier-0.0.2.zip 0.0.2 2017-05-26 8.0 mtermayer reis bugfix: Should not overwrite buffer when prettier fails to parse file
vim-prettier-0.0.1.zip 0.0.1 2017-05-25 8.0 mtermayer reis Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
SourceForge.net Logo