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通过传递命令行参数来设置语法?

Answers:


23

您可以使用:

vim -c 'set syntax=sql' -

2
注意:即使命令中没有冒号,也可以为我工作。
墨菲

1
较短的变体:vim '+set syn=sql' -
斯特凡Chazelas

5
通常,您最好使用set filetype=sql(或ft=sql简称为);这还将加载缩进文件,而不仅仅是语法高亮显示...
Martin Tournoij


1

您甚至可以通过以下命令将其自动化~/.vimrc

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.