用vim寫ios程序


以前介紹過一些vim插件,有兩個插件是方便寫iOS程序的,即cocoa和objc_matchbracket(以下稱objc_mb)。cocoa插件主要用來補全cocoa框架的API名,objc_mb則用來自動補全中括號。

不過這兩個插件都不支持后綴.mm的objective-C++文件,需要做一些改動。

在vim中運行

1 :e $VIMRUNTIME/filetype.vim

發現vim收集的文件類型還挺全的,連.mm文件是objcpp都知道……

於是讓插件支持objcpp類型就行了。

1) cocoa插件:

打開~/.vim/plugin/cocoa.vim,有如下一段:

1 au FileType objc ru after/syntax/objc_enhanced.vim
2                \| let b:match_words = '@\(implementation\|interface\):@end'
3                \| setl inc=^\s*#\s*import omnifunc=objc#cocoacomplete#Complete
4                \| if globpath(expand('<afile>:p:h'), '*.xcodeproj') != '' |
5                \  setl makeprg=open\ -a\ xcode\ &&\ osascript\ -e\ 'tell\ app\ \"Xcode\"\ to\ build'
6                \| endif

當然看不懂,不過把這段復制一遍,再把第1行的objc改成objcpp就可以讓cocoa插件支持objective-C++了。

2) objc_mb插件:

打開~/.vim/ftplugin/objc_matchbracket.vim

看不懂關掉。復制此文件,文件名改為objcpp_matchbracket.vim,再把里面的objc替換成objcpp就成了。

這樣就可以在.mm文件中享用二插件了。

不過還是有問題——原來一堆C,C++插件不認.mm文件。筆者是在.vimrc文件中寫了個補丁,可以手動修改.mm文件的類型——objcpp或cpp:

1 function ChangeFiletypeBetweenCppAndObjcpp()
2     if &filetype=="cpp"
3         set filetype=objcpp
4     else
5         set filetype=cpp
6     endif
7 endfunction
8 
9 map<F4> :call ChangeFileTypeBetweenCppAndObjcpp()<ENTER>

這樣就可以按F4切換.mm文件的類型,以令其適應不同的插件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM