Aller au contenu principal

Configuration Vim

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Les utilisateurs de Vim peuvent installer soit vim-prettier, spécifique à Prettier, soit Neoformat ou ALE qui sont des moteurs de linting/formatage génériques prenant en charge Prettier.

vim-prettier

Consultez le fichier readme de vim-prettier pour les instructions d'installation et d'utilisation.

Neoformat

La meilleure façon d'installer Neoformat est d'utiliser votre gestionnaire de plugins Vim préféré, comme vim-plug :

Plug 'sbdchd/neoformat'

Pour que Neoformat utilise une version locale de Prettier (c'est-à-dire node_modules/.bin/prettier plutôt que de chercher prettier dans $PATH), vous devez définir l'option neoformat_try_node_exe :

let g:neoformat_try_node_exe = 1

Exécutez :Neoformat ou :Neoformat prettier dans un fichier pris en charge pour lancer Prettier.

Pour que Neoformat exécute Prettier à l'enregistrement :

autocmd BufWritePre *.js Neoformat

Vous pouvez aussi demander à Vim de formater votre code plus fréquemment, en configurant un autocmd pour d'autres événements. En voici quelques-uns utiles :

  • TextChanged : après une modification du texte en mode Normal

  • InsertLeave : en quittant le mode Insertion

Par exemple, vous pouvez formater sur ces deux événements combinés avec BufWritePre comme ceci :

autocmd BufWritePre,TextChanged,InsertLeave *.js Neoformat

Voir :help autocmd-events dans Vim pour plus de détails.

Il est recommandé d'utiliser un fichier de configuration, mais vous pouvez aussi ajouter des options dans votre .vimrc :

autocmd FileType javascript setlocal formatprg=prettier\ --single-quote\ --trailing-comma\ es5
" Use formatprg when available
let g:neoformat_try_formatprg = 1

Chaque espace dans les options de Prettier doit être échappé avec \.

ALE

ALE nécessite Vim 8 ou Neovim car il utilise les capacités asynchrones fournies par ces deux éditeurs.

La meilleure façon d'installer ALE est d'utiliser votre gestionnaire de plugins Vim préféré, comme vim-plug :

Plug 'dense-analysis/ale'

Vous trouverez d'autres instructions dans le dépôt ALE.

ALE essaiera d'utiliser Prettier installé localement avant de chercher une installation globale.

Activez le fixer Prettier pour les langages que vous utilisez :

let g:ale_fixers = {
\ 'javascript': ['prettier'],
\ 'css': ['prettier'],
\}

ALE prend en charge à la fois des linters et des fixers. Si vous ne spécifiez pas quels linters exécuter, tous les outils disponibles pour tous les langages supportés seront lancés, et vous pourriez obtenir un fichier correctement formaté avec une multitude d'erreurs de lint. Pour désactiver ce comportement, configurez ALE pour n'exécuter que les linters que vous avez explicitement configurés (plus d'infos dans la FAQ) :

let g:ale_linters_explicit = 1

Vous pouvez ensuite exécuter :ALEFix dans un fichier JavaScript ou CSS pour lancer Prettier.

Pour qu'ALE exécute Prettier à l'enregistrement :

let g:ale_fix_on_save = 1

Il est recommandé d'utiliser un fichier de configuration, mais vous pouvez aussi ajouter des options dans votre .vimrc :

let g:ale_javascript_prettier_options = '--single-quote --trailing-comma all'

coc-prettier

Extension Prettier pour coc.nvim nécessitant neovim ou vim8.1. Installez coc.nvim avec votre gestionnaire de plugins préféré, tel que vim-plug :

Plug 'neoclide/coc.nvim', {'branch': 'release'}

Et installez coc-prettier via la commande :

CocInstall coc-prettier

Configurez la commande Prettier dans votre init.vim ou .vimrc

command! -nargs=0 Prettier :call CocAction('runCommand', 'prettier.formatFile')

Mettez à jour votre coc-settings.json pour les langages à formater à l'enregistrement.

{
"coc.preferences.formatOnSaveFiletypes": ["css", "markdown"]
}

coc-prettier partage les mêmes configurations que prettier-vscode. Ouvrez coc-settings.json avec :CocConfig pour bénéficier de l'autocomplétion.

Exécution manuelle

Pour une solution minimaliste, créez un raccourci personnalisé. Dans cet exemple, gp (mnémonique "get pretty") exécute Prettier (avec options) dans le tampon actif :

nnoremap gp :silent %!prettier --stdin-filepath %<CR>

Notez qu'en cas d'erreur syntaxique, le tampon sera entièrement remplacé par un message d'erreur. Utilisez u pour restaurer votre code.

Un autre inconvénient : la position du curseur ne sera pas conservée.