के लिए Vim स्वत: पूर्णता हाल ही में मैं एक विम-आधारित आईओएस वर्कफ़्लो स्थापित करने की कोशिश कर रहा हूं।clang_complete: आईओएस
मैं clang_complete पाया, और के रूप में यहाँ वर्णित इसलिए
let g:clang_user_options='-fblocks -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300'
की तरह मेरे .vimrc में बजना उपयोगकर्ता विकल्पों की स्थापना की है: http://www.zenskg.net/wordpress/?p=199#comment-229
और कुछ ढांचा/हैडर/lib रास्तों गयी। मैं पूरी लाइन पोस्ट नहीं कर रहा हूं क्योंकि यह बहुत बड़ा है।
तो मैं कमांड लाइन से clang
का उपयोग कर (एक ही विकल्प का उपयोग कर) अपने प्रोजेक्ट में फ़ाइलों में से एक के संकलन का परीक्षण किया है, और यह ठीक संकलित, लेकिन केवल अगर मैं -arch armv6/7
ध्वज का उपयोग करें। अगर मैं i386 के लिए संकलित करने की कोशिश नहीं करता और अनुपलब्ध हेडर फ़ाइलों की शिकायत करता हूं।
अभी तक इतना अच्छा है। अब मैं अपने .vimrc
में clang_complete
के उपयोगकर्ता विकल्पों को clang
पर दिए गए सटीक वही विकल्पों का उपयोग करता हूं?
नहीं। जब मैं ऐसा और विम में एक शब्द स्वत: पूर्ण करने का प्रयास करें, यह कहता है
unknown argument: '-arch'
विम की QuickFix सूची में
। मुझे इस झंडे की ज़रूरत है- मुझे कैसे आगे बढ़ना चाहिए?
कोई भी विचार उपयोगी है। मुझे वीम के तहत काम करने के लिए आईओएस कोड पूरा करना अच्छा लगेगा।
बहुत बहुत धन्यवाद ... यह मुझे बहुत आगे मिला। मैंने वर्कोज़ मोड में एक्सकोडबिल्ड चलाया, क्लैंग विकल्पों की प्रतिलिपि बनाई, फिर वर्बोज़ मोड में इन विकल्पों के साथ झुकाव चलाया, फिर आउटपुट से clang -cc1 विकल्पों को मेरे .vimrc में कॉपी किया। clang_complete अभी भी मेरे कोड को स्वतः पूर्ण नहीं कर सकता है, मुझे लगता है कि मुझे -frameworks ध्वज का उपयोग करने की आवश्यकता है जो कि -cc1 में समतुल्य प्रतीत नहीं होता है। क्या आप मुझे कुछ दस्तावेज बता सकते हैं? मैन पेज बहुत अच्छे नहीं हैं- मैं आपको बताए बिना -cc1 विकल्प के बारे में कभी नहीं जानता था। – Sam
यहां कुछ ऐसा है जो आप कोशिश कर सकते हैं: खोलें ~/.vim/plugin/clang_complete.vim (या जहां भी आपने clang_complete इंस्टॉल किया है), और ClangCompleteBinary फ़ंक्शन देखें। वहां दो चीजें हैं जो आप कोशिश कर सकते हैं: 1. v: shell_error condition block को टिप्पणी करें। क्लैंग अक्सर संकलन त्रुटि होने पर भी अच्छे समापन विकल्प लौटाएगा, और clang_complete इस तथ्य को अनदेखा करता है। 2. सिस्टम में सिस्टम (एल: कमांड) बदलें (एल: कमांड। '| और टीई/टीएमपी/क्लैंग.लॉग') और विम से पूरा होने का ट्रिगर करें। फिर आप clang से सटीक त्रुटि आउटपुट /tmp/clang.log में देख पाएंगे। उम्मीद है कि मदद करता है। –