Zum Hauptinhalt springen

Vim-Einrichtung

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Vim-Nutzer können entweder vim-prettier installieren, das speziell für Prettier entwickelt wurde, oder Neoformat bzw. ALE, die allgemeine Lint-/Formatierungs-Tools mit Prettier-Unterstützung sind.

vim-prettier

Installations- und Verwendungsanleitungen finden Sie im vim-prettier-Readme.

Neoformat

Die beste Installationsmethode für Neoformat ist über Ihren bevorzugten Vim-Plugin-Manager, wie z.B. vim-plug:

Plug 'sbdchd/neoformat'

Damit Neoformat eine projektspezifische Prettier-Version verwendet (d.h. node_modules/.bin/prettier nutzt statt nach prettier im $PATH zu suchen), müssen Sie die Option neoformat_try_node_exe setzen:

let g:neoformat_try_node_exe = 1

Führen Sie :Neoformat oder :Neoformat prettier in einer unterstützten Datei aus, um Prettier zu starten.

Um Neoformat beim Speichern automatisch Prettier ausführen zu lassen:

autocmd BufWritePre *.js Neoformat

Sie können Vim auch so konfigurieren, dass Ihr Code häufiger formatiert wird, indem Sie einen autocmd für andere Events setzen. Hier einige nützliche Beispiele:

  • TextChanged: nach einer Änderung im Text im Normalmodus

  • InsertLeave: beim Verlassen des Einfügemodus

Beispielsweise können Sie die Formatierung für beide Events zusammen mit BufWritePre wie folgt aktivieren:

autocmd BufWritePre,TextChanged,InsertLeave *.js Neoformat

Details finden Sie unter :help autocmd-events in Vim.

Empfohlen wird eine Konfigurationsdatei, Sie können Optionen aber auch in Ihrer .vimrc hinzufügen:

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

Leerzeichen in Prettier-Optionen müssen mit \ maskiert werden.

ALE

ALE erfordert entweder Vim 8 oder Neovim, da es die asynchronen Fähigkeiten beider Editoren nutzt.

Die beste Installationsmethode für ALE ist über Ihren bevorzugten Vim-Plugin-Manager, wie z.B. vim-plug:

Plug 'dense-analysis/ale'

Weitere Anleitungen finden Sie im ALE-Repository.

ALE versucht zunächst, eine lokale Prettier-Installation zu verwenden, bevor es nach einer globalen Installation sucht.

Aktivieren Sie den Prettier-Fixer für Ihre verwendeten Sprachen:

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

ALE unterstützt sowohl Linter als auch Fixer. Wenn Sie keine spezifischen Linter festlegen, werden alle verfügbaren Tools für alle unterstützten Sprachen ausgeführt, was zu korrekt formatierten Dateien mit zahlreichen Lint-Fehlern führen kann. Um dieses Verhalten zu deaktivieren, können Sie ALE anweisen, nur explizit konfigurierte Linter auszuführen (weitere Infos im FAQ):

let g:ale_linters_explicit = 1

Führen Sie dann :ALEFix in einer JavaScript- oder CSS-Datei aus, um Prettier zu starten.

Um ALE beim Speichern automatisch Prettier ausführen zu lassen:

let g:ale_fix_on_save = 1

Empfohlen wird eine Konfigurationsdatei, Sie können Optionen aber auch in Ihrer .vimrc hinzufügen:

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

coc-prettier

Prettier-Erweiterung für coc.nvim, die neovim oder vim8.1 erfordert. Installieren Sie coc.nvim mit Ihrem bevorzugten Plugin-Manager, z.B. vim-plug:

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

Und installieren Sie coc-prettier per Befehl:

CocInstall coc-prettier

Richten Sie den Prettier-Befehl in Ihrer init.vim oder .vimrc ein:

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

Aktualisieren Sie Ihre coc-settings.json für Sprachen, die beim Speichern formatiert werden sollen:

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

coc-prettier verwendet dieselben Konfigurationen wie prettier-vscode. Öffnen Sie coc-settings.json mit :CocConfig, um Autovervollständigung zu erhalten.

Manuelles Ausführen

Für eine Minimal-Lösung können Sie eine eigene Tastenkombination erstellen. In diesem Beispiel wird gp (Mnemonic: "get pretty") verwendet, um Prettier (mit Optionen) im aktuellen Buffer auszuführen:

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

Hinweis: Bei Syntaxfehlern wird der gesamte Buffer durch eine Fehlermeldung ersetzt. Drücken Sie u, um Ihren Code wiederherzustellen.

Ein weiterer Nachteil dieser Methode ist, dass die Cursorposition nicht erhalten bleibt.