メインコンテンツへスキップ

Vim セットアップ

非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

Vimユーザーは、Prettier専用のvim-prettier、またはPrettierに対応した汎用リント/フォーマットエンジンであるNeoformatもしくはALEのいずれかをインストールできます。

vim-prettier

インストール方法と使用方法については、vim-prettierのREADMEを参照してください。

Neoformat

Neoformatをインストールする最適な方法は、vim-plugなど、お気に入りのVimプラグインマネージャーを使用することです:

Plug 'sbdchd/neoformat'

NeoformatがプロジェクトローカルのPrettierを使用するようにするには(つまり、$PATH上のprettierを探す代わりにnode_modules/.bin/prettierを使用する)、neoformat_try_node_exeオプションを設定する必要があります:

let g:neoformat_try_node_exe = 1

サポート対象のファイルで:Neoformatまたは:Neoformat prettierを実行するとPrettierが起動します。

保存時にNeoformatがPrettierを実行するようにするには:

autocmd BufWritePre *.js Neoformat

autocmdで他のイベントを設定することで、より頻繁にコードフォーマットを実行させることもできます。有用なイベントの例:

  • TextChanged: ノーマルモードでテキストが変更された後

  • InsertLeave: 挿入モードを終了したとき

例えば、上記の両イベントとBufWritePreを組み合わせて以下のように設定できます:

autocmd BufWritePre,TextChanged,InsertLeave *.js Neoformat

詳細はVimで:help autocmd-eventsを参照してください。

設定ファイルの使用が推奨されますが、.vimrcにオプションを追加することも可能です:

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

Prettierオプション内のスペースはすべて\でエスケープする必要があります。

ALE

ALEは非同期処理機能を利用するため、Vim 8またはNeovimが必要です。

ALEをインストールする最適な方法は、vim-plugなど、お気に入りのVimプラグインマネージャーを使用することです:

Plug 'dense-analysis/ale'

詳細な手順はALEリポジトリで確認できます。

ALEはグローバルインストールを探す前に、ローカルにインストールされたPrettierの使用を試みます。

使用言語に対してPrettierフィクサーを有効化:

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

ALEは_リンター_と_フィクサー_の両方をサポートしています。実行する_リンター_を指定しない場合、サポートされている全言語で利用可能なツールがすべて実行され、正しくフォーマットされたファイルに大量のリンターエラーが表示される可能性があります。この動作を無効化するには、明示的に設定したリンターのみを実行するようにALEに指示できます(詳細はFAQ参照):

let g:ale_linters_explicit = 1

その後、JavaScriptやCSSファイルで:ALEFixを実行するとPrettierが起動します。

保存時にALEがPrettierを実行するようにするには:

let g:ale_fix_on_save = 1

設定ファイルの使用が推奨されますが、.vimrcにオプションを追加することも可能です:

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

coc-prettier

coc.nvim向けのPrettier拡張機能で、neovimまたはvim8.1が必要です。 お好みのプラグインマネージャ(例: vim-plug)を使用してcoc.nvimをインストールします:

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

続いてコマンドでcoc-prettierをインストールします:

CocInstall coc-prettier

init.vimまたは.vimrcPrettierコマンドを設定します

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

保存時にフォーマットを適用したい言語についてcoc-settings.jsonを更新します。

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

coc-prettierprettier-vscodeと同じ設定を持ち、:CocConfigcoc-settings.jsonを開くとオートコンプリートが利用できます。

手動実行

最小限の設定では、カスタムキーバインドを作成できます。以下の例ではgp(ニーモニック: "get pretty")を使用して現在のバッファでPrettierを実行します(オプション付き):

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

注意: コードに構文エラーがある場合、バッファ全体がエラーメッセージに置き換わります。コードを復元するにはuを押す必要があります。

この方法のもう1つの欠点は、カーソル位置が保持されないことです。