मैं स्रोत कोड फॉर्मेटर Uncrustify को विम के साथ एकीकृत करना चाहता हूं। नीचे दिए गए दो विकल्पों में से कोई भी पर्याप्त होगा।विम autocmd (फ़ाइल सहेजें, कोड कोडर, रीलोड फ़ाइल)
- कोड को प्रारूपित करें जिसे मैं वर्तमान में संपादित कर रहा हूं (यानी
gq
दबाया जाता है)। - फ़ाइल को सहेजते समय कोड को स्वरूपित करें और फिर स्वरूपित फ़ाइल को वर्तमान विम विंडो में पुनः लोड करें।
विकल्प 1 बेहतर है। मैंने
set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup
यानी मैं कमांड लाइन विकल्पों के साथ Uncrustify को कॉल करता हूं। यह काम नहीं करता है। वी E518: Unknown option: ~/misc/uncrustify.cfg
त्रुटि देता है।
विकल्प 2 के लिए, मैं vimrc फ़ाइल
autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup <afile>
फ़ाइल को सहेजने के बाद स्वरूपित है में निम्नलिखित कोशिश की, लेकिन मैं मैन्युअल विम में फ़ाइल पुनः लोड करने के लिए है।
:set formatprg=uncrustify\ -c\ ~/misc/uncrustify.cfg\ --no-backup
अद्यतन
uncrustify
प्रिंट "पार्सिंग:: 170 बाइट्स ..." संदेश stderr करने के लिए तो हम /dev/null
को यह रीडायरेक्ट करना होगा:
पर अधिक जानकारी VI VI त्रुटि को हटा दी गई। मुझे सीपीपी के रूप में भाषा निर्दिष्ट करने के लिए -l विकल्प भी जोड़ना पड़ा, क्योंकि अविश्वास के लिए इनपुट stdin से है। हालांकि, vi में gq दबाकर फ़ाइल को प्रारूपित नहीं किया जाता है। यदि मैं इसे दोबारा दबाता हूं, तो केवल वर्तमान पंक्ति स्वरूपित होती है और फ़ाइल को संपादित करने के लिए निम्न पंक्ति जोड़ दी जाती है - "पार्सिंग: 57 बाइट्स (57 वर्ण) stdin से भाषा सीपीपी के रूप में"। मुझे लगता है कि मैं जो खो रहा हूं वह है कि संपूर्ण फ़ाइल को पढ़ने के लिए formatprg कमांड को कॉन्फ़िगर कैसे करें, और दूसरी ओर उपरोक्त पंक्ति के आउटपुट को संपादित करने के लिए रोकें। – user1280213
@ user1280213 मैंने जवाब अपडेट किया है, उम्मीद है कि – galymzhan
धन्यवाद। इससे मदद मिली। – user1280213