vim:通过命令行参数强制特定语法

Ada*_*tan 27 vim sql stdout syntax-highlighting stdin

当我想轻松阅读我的 PostgreSQL 模式时,我将其转储到以下位置stderr并将其重定向到vim

pg_dump -h localhost -U postgres dog_food --schema-only | vim -
Run Code Online (Sandbox Code Playgroud)

这给出:

在此处输入图片说明

vim 没有语法高亮模式,因为从 stdin 读取时它没有文件扩展名,所以我使用以下内容:

:set syntax=sql
Run Code Online (Sandbox Code Playgroud)

这使:

在此处输入图片说明

作为一个懒惰的开发人员,我想vim通过传递命令行参数来强制使用 SQL 语法,这样我set syntax=<whatever>每次打开stdin数据时都不必重新输入。

有没有办法vim通过传递命令行参数来设置语法?

Lam*_*ert 29

您可以使用:

vim -c 'set syntax=sql' -
Run Code Online (Sandbox Code Playgroud)

  • 通常你最好使用`set filetype=sql`(或简称`ft=sql`);这还将加载缩进文件等,而不仅仅是语法突出显示... (7认同)
  • 注意:即使命令中没有冒号也适用于我。 (2认同)

ani*_*tel 6

vim -R -c 'set ft=sql' -
Run Code Online (Sandbox Code Playgroud)