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


1

Ви навіть можете автоматизувати це, ввівши команду у своє ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.