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?

Respuestas:


23

Puedes usar:

vim -c 'set syntax=sql' -

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.