vim: Força sintaxe específica via argumento da linha de comando


17

Quando quero ler facilmente meu esquema do PostgreSQL, despejo-o stderre redireciono-o para vim:

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

Isto dá:

insira a descrição da imagem aqui

vim não possui um esquema de destaque de sintaxe, porque não possui extensão de nome de arquivo ao ler a partir de stdin, portanto, uso o seguinte:

:set syntax=sql

Que dá:

insira a descrição da imagem aqui

Sendo o desenvolvedor preguiçoso que sou, gostaria de forçar o vimuso da sintaxe SQL passando um argumento de linha de comando, poupando-me o coro de re-digitar set syntax=<whatever>toda vez que o abro com stdindados.

Existe uma maneira de definir a vimsintaxe passando um argumento de linha de comando?

Respostas:


23

Você pode usar:

vim -c 'set syntax=sql' -

2
Nota: Funciona para mim mesmo sem os dois pontos no comando.
Murphy

1
Variante mais curta:vim '+set syn=sql' -
Stéphane Chazelas /

5
Normalmente, é melhor usar set filetype=sql(ou ft=sqlabreviar); que também irá carregar os arquivos de recuo e tal e não apenas o destaque de sintaxe ...
Martin Tournoij


1

Você pode até automatizar isso colocando o comando em seu ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.