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?

Jawaban:


23

Kamu bisa memakai:

vim -c 'set syntax=sql' -

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


1

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

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.