vim: форсирует определенный синтаксис через аргумент командной строки

17

Когда я хочу легко прочитать мою схему PostgreSQL, я помещаю ее stderrи перенаправляю на vim:

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

Это дает:

введите описание изображения здесь

vim не имеет схемы подсветки синтаксиса, поскольку не имеет расширения имени файла при чтении из stdin, поэтому я использую следующее:

:set syntax=sql

Который дает:

введите описание изображения здесь

Будучи ленивым разработчиком, я хочу заставить vimсинтаксис SQL передавать аргумент командной строки, избавляя меня от необходимости перепечатывать set syntax=<whatever>каждый раз, когда я открываю его с stdinданными ...

Есть ли способ установить vimсинтаксис, передав аргумент командной строки?

Адам Матан
источник

Ответы:

23

Ты можешь использовать:

vim -c 'set syntax=sql' -
Ламберт
источник
2
Примечание: работает для меня даже без двоеточия в команде.
Мерфи
1
Укороченный вариант:vim '+set syn=sql' -
Стефан Шазелас
5
Обычно вам лучше использовать set filetype=sql(или ft=sqlдля краткости); это также загрузит файлы отступов и тому подобное, а не только подсветку синтаксиса ...
Martin Tournoij
2
vim -R -c 'set ft=sql' -
anishpatel
источник
1

Вы даже можете автоматизировать это, поместив команду в свой ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Мерфи
источник