vim: Spezifische Syntax über das Befehlszeilenargument erzwingen


17

Wenn ich mein PostgreSQL-Schema einfach lesen möchte, speichere ich es stderrund leite es weiter an vim:

pg_dump -h localhost -U postgres dog_food --schema-only | vim -

Das gibt:

Bildbeschreibung hier eingeben

vim hat kein Syntaxhervorhebungsschema, da es beim Lesen von stdin keine Dateinamenerweiterung hat. Daher verwende ich Folgendes:

:set syntax=sql

Welches gibt:

Bildbeschreibung hier eingeben

Als fauler Entwickler möchte ich die vimVerwendung der SQL-Syntax erzwingen , indem ich ein Befehlszeilenargument übergebe. Dadurch erspare ich mir den Chor, set syntax=<whatever>jedes Mal, wenn ich es mit stdinDaten öffne, erneut zu tippen.

Gibt es eine Möglichkeit, die vimSyntax durch Übergeben eines Befehlszeilenarguments festzulegen?

Antworten:


23

Sie können verwenden:

vim -c 'set syntax=sql' -

2
Hinweis: Funktioniert bei mir auch ohne Doppelpunkt im Befehl.
Murphy

1
Kürzere Variante:vim '+set syn=sql' -
Stéphane Chazelas

5
Normalerweise ist es besser, set filetype=sql(oder ft=sqlkurz) zu verwenden. Das wird auch die Einrückungsdateien und solche und nicht nur die Hervorhebung der Syntax
laden


1

Sie können dies sogar automatisieren, indem Sie den Befehl in Folgendes einfügen ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.