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?

Adam Matan
quelle

Antworten:

23

Sie können verwenden:

vim -c 'set syntax=sql' -
Lambert
quelle
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
Murphy
quelle