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' -

1

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

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.