所以最近我一直在試圖建立一個基於Vim的iOS工作流程。clang_complete:iOS的Vim自動完成
我發現clang_complete,和這裏描述的.vimrc我設置的鐺用戶選項,像這樣
let g:clang_user_options='-fblocks -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300'
:http://www.zenskg.net/wordpress/?p=199#comment-229
,並增加了一些框架/頭/ lib目錄路徑。我不打算張貼整條線,因爲它很大。
所以我(使用相同的選項)使用clang
命令行測試的一個文件彙編在我的項目,它編譯罰款,但只有如果我使用-arch armv6/7
標誌。如果我不嘗試編譯i386並抱怨缺少頭文件。
到目前爲止這麼好。現在我只是使用與clang
完全相同的選項,以clang_complete
的用戶選項在我的.vimrc
右邊?
沒有。當我這樣做並嘗試在Vim中自動完成一個單詞時,它說在Vim的QuickFix列表中顯示
unknown argument: '-arch'
。我有點需要這個標誌 - 我應該如何繼續?
任何想法很有用。我很想在Vim下使用iOS代碼完成工作。
非常感謝...這讓我有了更多的進步。我以詳細模式運行xcodebuild,複製了clang選項,然後在詳細模式下使用這些選項運行clang,然後將輸出中的clang -cc1選項複製到我的.vimrc中。儘管clang_complete仍然無法自動完成我的代碼,但我認爲我需要使用-frameworks標誌,它在-cc1中似乎沒有等效。你能指點我一些文件嗎?手冊頁不是很好 - 我不會在沒有告訴我的情況下知道-cc1選項。 – Sam
下面是你可以嘗試的東西:打開〜/ .vim/plugin/clang_complete.vim(或者你安裝了clang_complete的任何地方),然後查找ClangCompleteBinary函數。有兩件事你可以試試: 1.註釋掉v:shell_error條件塊。 Clang通常會返回完好的選項,即使它有編譯錯誤,clang_complete也會忽略這個事實。 2.將系統(l:命令)更改爲system(l:command。'&tee /tmp/clang.log')並從vim觸發完成。然後,您將能夠在/tmp/clang.log中看到來自clang的確切錯誤輸出。 希望有所幫助。 –