vim: Memaksa sintaksis spesifik melalui argumen baris perintah

17

Ketika saya ingin dengan mudah membaca skema PostgreSQL saya, saya membuangnya stderrdan mengarahkannya ke vim:

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

Ini memberi:

masukkan deskripsi gambar di sini

vim tidak memiliki skema highlight sintaks, karena tidak memiliki ekstensi nama file ketika membaca dari stdin, jadi saya menggunakan yang berikut ini:

:set syntax=sql

Pemberian yang mana:

masukkan deskripsi gambar di sini

Menjadi pengembang malas saya, saya ingin memaksa vimuntuk menggunakan sintaks SQL dengan melewati argumen baris perintah, menyelamatkan saya paduan suara mengetik ulang set syntax=<whatever>setiap kali saya membukanya dengan stdindata ..

Apakah ada cara untuk mengatur vimsintaks dengan melewati argumen baris perintah?

Adam Matan
sumber

Jawaban:

23

Kamu bisa memakai:

vim -c 'set syntax=sql' -
Lambert
sumber
2
Catatan: Bekerja untuk saya bahkan tanpa tanda titik dua dalam perintah.
Murphy
1
Varian yang lebih pendek:vim '+set syn=sql' -
Stéphane Chazelas
5
Biasanya Anda lebih baik menggunakan set filetype=sql(atau ft=sqlsingkatnya); yang juga akan memuat file lekukan dan semacamnya, dan bukan hanya penyorotan sintaks ...
Martin Tournoij
2
vim -R -c 'set ft=sql' -
anishpatel
sumber
1

Anda bahkan dapat mengotomatiskannya dengan memasukkan perintah ke ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Murphy
sumber