vim: कमांड-लाइन तर्क के माध्यम से विशिष्ट वाक्यविन्यास


18

जब मैं आसानी से अपने PostgreSQL स्कीमा को पढ़ना चाहता हूं, तो मैं इसे डंप करता हूं stderrऔर इसे रीडायरेक्ट करता हूं vim:

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

यह देता है:

यहां छवि विवरण दर्ज करें

vim सिंटैक्स हाइलाइट स्कीमा नहीं है, क्योंकि स्टड से पढ़ते समय इसका कोई फ़ाइल नाम एक्सटेंशन नहीं है, इसलिए मैं निम्नलिखित का उपयोग करता हूं:

: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संक्षेप में) का उपयोग कर बेहतर होते हैं ; यह भी इंडेंटेशन फ़ाइलों को लोड करेगा और ऐसे ही नहीं सिंटैक्स हाइलाइटिंग ...
मार्टिन टूरनोइज

2
vim -R -c 'set ft=sql' -

1

तुम भी अपने आप में आदेश डाल कर स्वचालित कर सकते हैं ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.