vim: Force une syntaxe spécifique via un argument de ligne de commande

17

Lorsque je veux lire facilement mon schéma PostgreSQL, je le vide stderret le redirige vers vim:

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

Cela donne:

entrez la description de l'image ici

vim n'a pas de schéma de mise en évidence de la syntaxe, car il n'a pas d'extension de nom de fichier lors de la lecture à partir de stdin, donc j'utilise ce qui suit:

:set syntax=sql

Qui donne:

entrez la description de l'image ici

Étant le développeur paresseux que je suis, je voudrais forcer vimà utiliser la syntaxe SQL en passant un argument de ligne de commande, me sauvant le chœur de retaper à set syntax=<whatever>chaque fois que je l'ouvre avec des stdindonnées ..

Existe-t-il un moyen de définir la vimsyntaxe en passant un argument de ligne de commande?

Adam Matan
la source

Réponses:

23

Vous pouvez utiliser:

vim -c 'set syntax=sql' -
Lambert
la source
2
Remarque: Fonctionne pour moi même sans les deux-points dans la commande.
Murphy
1
Variante plus courte:vim '+set syn=sql' -
Stéphane Chazelas
5
En règle générale, il vaut mieux utiliser set filetype=sql(ou ft=sqlpour faire court); qui chargera également les fichiers d'indentation et autres et pas seulement la coloration syntaxique ...
Martin Tournoij
1

Vous pouvez même automatiser cela en mettant la commande dans votre ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Murphy
la source