vim: forzar una sintaxis específica mediante un argumento de línea de comandos

17

Cuando quiero leer fácilmente mi esquema PostgreSQL, lo vuelco stderry lo redirijo a vim:

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

Esto da:

ingrese la descripción de la imagen aquí

vim no tiene un esquema de resaltado de sintaxis, porque no tiene extensión de nombre de archivo al leer desde stdin, por lo que utilizo lo siguiente:

:set syntax=sql

Lo que da:

ingrese la descripción de la imagen aquí

Siendo el desarrollador perezoso que soy, me gustaría vimobligarme a usar la sintaxis SQL pasando un argumento de línea de comando, ahorrándome el coro de volver a escribir set syntax=<whatever>cada vez que lo abro con stdindatos.

¿Hay alguna manera de establecer la vimsintaxis pasando un argumento de línea de comando?

Adam Matan
fuente

Respuestas:

23

Puedes usar:

vim -c 'set syntax=sql' -
Lambert
fuente
2
Nota: funciona para mí incluso sin los dos puntos en el comando.
Murphy
1
Variante más corta:vim '+set syn=sql' -
Stéphane Chazelas
55
Por lo general, es mejor usarlo set filetype=sql(o ft=sqlpara abreviar); eso también cargará los archivos de sangría y tal y no solo el resaltado de sintaxis ...
Martin Tournoij
1

Incluso puede automatizar eso poniendo el comando en su ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Murphy
fuente