配置Vim開發Android詳解

由於哥們的機子配置不是一般的好,望eclipse驚歎啊,一直在尋找能夠開發java更者android的字符編輯器,最終經多方的查閱、嘗試,找到一篇比較完美的文章,成功體驗ubuntu下開發android,話不多說,內容如下:

在開發Android的 程序員中,應該說使用Eclipse或者Netbean的是最多的。考慮到Google推出了一整套開發插件,讓用戶從項目到寫代碼到編譯運行鏈接模擬器 一氣呵成,用Eclipse這樣的IDE無可厚非。不過,總有一些用戶不喜歡IDE,不想用類似於Eclipse的方式開發,他們的想法包括

  • 任何編輯器都比不上vim/emacs
  • 我電腦太慢,不想跑IDE
  • 純命令行形式,我就喜歡,每天打10000個命令我也喜歡,反正我選擇,我喜歡

^_^

而本文, 就是爲這部分用戶而寫。其實對於Google這樣的Linux氣氛濃厚的公司,它本身提供的命令行工具就已經足夠你脫離IDE了,就是編輯上,很多 Eclipse優秀的功能都沒有。但是,配合本文介紹的eclim,你會發現,你把Eclipse嵌進了vim中!現在,建立項目之後,從編輯源代碼到編 譯到管理項目最後到安裝程序到模擬器,所有任務都可以在一個vim裏面完成,我們真正把vim當成了IDE!

注:我不是一個Cmd盲目愛好者,在我看來,如果真的想開發Android應用而非小打小鬧,那麼IDE還是有點用處的:

  • 當你項目很大,要管理的東西很多時。用Vim開發任何語言的程序都會面臨scalable的問題
  • 當你硬着頭皮找bug時。DDMS配合Eclipse確實比其他方式都要方便得多。

所以我自己是Cmd加IDE配合着用

實現本文所講述內容的關鍵,就是eclim這個開源軟件。你可以從eclim官方站點了解並下載。接下來,就針對eclim來講解具體的安裝使用步驟。

安裝

安裝之前要確認,你的系統有

  1. JDK1.5或者更高
  2. Eclipse 3.5.x
  3. vim 7.1.x,並且vimrc裏面要set nocompatible並打開filetype plugin on

首先下載,我們可以從下載頁面看到,有三種包,exe是windows的,tar.gz是源碼,sh是Linux/Mac下安裝腳本。由於源碼包需要有Ant來配置安裝,還得花心思去看版本對不對,所以我們可以直接下載sh文件來安裝。

下載sh文件後,執行,會彈出安裝的圖形界面,一路next即可。注意,請事先備份你的~/.vim目錄下的所有原有插件,因爲eclim默認是覆蓋安裝插件到這個目錄下的。你可以安裝之後再把備份的原有插件copy回去即可。

好,假設我們已經安裝完成了,怎麼用eclimd呢?eclimd有兩種最方面的模式,一種是在eclipse裏面用vim,一種是在vim裏面享受eclipse的功能。這裏主要說一說以vim/gvim爲主環境的配置。

首先,eclim和其他很多程序一樣,有一個daemon守護程序,所以每次想使用的時候,都必須把這個daemon守護程序打開。打開這個程序靠 eclimd這個腳本,通常都在你的~/.eclipse/xxxxxx目錄下,具體在哪裏取決於你安裝時候指定的eclipse配置文件目錄。如果是在 忘了,用

find /home -name eclimd 2>/dev/null

找。一旦找到,建議把路徑加到path裏面去,然後將這個命令設置爲開機啓動,如果你會經常用的話。

好,現在daemon程序跑起來了,打開vim,用命令

:PingEclim

如果一切正常,則會出現eclim以及eclipse的版本號。否則,則可能是daemon運作不正常。

使用

好,假設到這裏,一切都正常,我們就開始用eclim來進行Android工程了。下面的內容,就是今天要說的核心部分。

eclim本身支持五種工程的創建,c/c++, java, php, python, ruby,工程創建方法請參見官方網頁的說明。但是,我們這裏並不用eclim本身來創建工程。因爲Android SDK本身已經提供這個功能了,而且SDK創建出的工程纔有那一套文件個目錄。記住,我們用eclim是爲了給Android開發提供便捷的,所以整體流 程還是走Android那套。所以,我們還是先創建project

Android create project -n test –activity demo –package cn.forwind.myproject –target 3 –path ./myproject

這樣就在本地目錄下創建了工程目錄myproject。你進去之後用la命令就會發現,這本質上不是一個eclipse的java工程,因爲沒 有.project和.classpath兩個文件。而eclim本質上是遵循eclipse規範的,怎麼辦呢?沒關係,我們可以這樣做。到 myproject目錄的上一層目錄,打開vim,輸入

:ProjectCreate ./myproject -n java

什麼意思呢?就是說我們要在./myproject目錄下建立一個java對應的eclipse工程。而./myproject目錄已經有 Android所建立的所有文件了,所以這時,雙方需要的文件就都有了。用la看看,現在是不是又有.project又有.classpath了?而且 src目錄也被自動加進classpath了!

注:似乎現在eclim還有一個bug,就是建立project的時候path不能太深,超過5層就error了。我用的 解決方法是把包含project的目錄放在home目錄下,保證路徑不會很深。你也可以通過eclipse讀取一次這個Android工程,它就會自動幫 你創建.project和.classpath。也不麻煩,因爲對一個project只需要做一次即可。

好,現在我們就把新project建立好了,接下來建立一個avd

Android create avd -n forwind.cn

這樣,該做的準備工作就完成了。現在進入myproject目錄,打開vim。

首先在vim裏面用

:ProjectList

命令,確認一下,myproject這個project是被認出來了的。好,我們現在試着運行

:ProjectTree myproject

看看,是不是左邊出現了整個project的層級架構?怎麼操作,我相信所有的vimer都應該會,就不講解了。你還可以把這個命令定義成快捷鍵,後面不用加project名稱,因爲默認打開當前project的樹狀圖。

你還可以用

:ProjectsTree

來打開所有的Project的樹狀圖。如果想打開一個文件,就自動打開對應的project的樹狀圖,就在你的vimrc文件裏面添加這麼一句

let g:EclimProjectTreeAutoOpen=1

有朋友會有問題了,如果我想打開樹狀圖裏面的另一個文件,那不是把當前文件覆蓋了?當然用慣了buffer操作的朋友會覺得無所謂,但是也有不少朋友是tab操作的,這時,你可以把光標移到你想打開的文件上,按一下T,大寫的,文件就會自動在另一個tab中打開了。
好,接下來看看在編輯的過程中,除了vim自己的優勢,eclim還給了我們什麼好玩的東西。首先,你不用擔心代碼風格的問題了,比如大括號之類的,你完全可以按照自己的風格寫,寫完了一個命令
:%JavaFormat
就可以自動講文件排版成你eclipse設置的java代碼風格。這樣,只需要在eclipse裏面設置好團隊統一的風格,寫的時候就不用擔心。這個功能等同於Eclipse裏面的<C-S-F>。
其次,eclim有比較初級的代碼檢查功能,相當於Eclipse的quick fix。首先,你在寫完一個源程序代碼後,用命令
:Validate
就可以讓eclim幫你檢查可能有錯的行,並會用雙左向箭頭標註出來

然後你把光標移到該行,用命令
:JavaCorrect
就可以讓eclim給你修改建議。當然你也可以自己直接修改。

最後再介紹一下大家都會很關心的代碼補全。eclim的代碼補全,用的是相當標準的Vim補全方法,快捷鍵就是”Ctrl x Ctrl u”。我們都知道U表示user define。效果如何呢?看看下面這張示意圖:)

配置Vim開發Android詳解

我用過Vim不少代碼補全插件,有針對語言的,有通用的。應該是eclim是我用過對Java語言支持最好的。當然前面介紹過了,eclim對其他語言也有很好的支持,有興趣的朋友去官網看看。

好,代碼編輯部分就介紹到這裏。應該說,eclim的功能實在太多了,大多數eclipse能有的,你都能在eclim裏面找到。我這裏就不繼續介紹了,喜歡這個玩意的朋友,可以去看看這張cheatsheet,常用功能就基本包括完了。

那麼編輯完代碼,接下來幹嘛呢?去emulator上測試啊。首先你要打開剛纔建立的avd

emulator -avn AVD_NAME

然後編譯安裝。在Android SDK中,你可以用ant debug來編譯debug版本的程序,然後adb install name.apk 安裝,也可以用ant install安裝。而eclim牛逼之處在於,它內建支持ant!也就是說,你在vim裏面把代碼寫完,根本不用推出,直接一個ant install,就可以在模擬器裏面看效果了。而且,ant對應的build.xml,你也可以直接編輯,eclim同樣提供了代碼補全和檢查基本語法的 功能!

怎麼樣,看見上面的介紹,有沒有一點心動啊?再說一遍,eclim真的是一個很牛逼的工具,建議所有有興趣用它的人,都去官網上自習讀document,保證你會發現,你越來越不需要eclipse了。(除了調試:P)。

最後說一下,eclim還支持單獨的配置文件,你可以在home目錄下建一個~/.eclimrc,性質就和.gvimrc一樣的。

最後的最後,恩,我沒有介紹用eclim編輯界面XML,因爲我用DroidDraw來畫界面。不過你習慣了文本編輯的話,其實道理是一樣的。

---------------------------------------------------------------------------------------------------------------------------卑微的分割線-------------------------------------

                                                                                      來源:http://www.linuxidc.com/Linux/2011-08/41341.htm

問題一:
導包時不能識別Android.jar
原因及解決方法
原因是eclim默認的路徑中沒有包含Android.jar,在工程目錄下的.classpath文件中添加這一句
<classpathentry exported="true" kind="lib" 
path="/opt/Android-sdk-linux_86/platforms/android-4/android.jar"/>
//這個path是我的Android.jar的絕對路徑改成你自己的。

問題二:
R cannot be resolved to a variable
原因及解決方法
R.java 是Android自動生成的,不需要import,但是eclim並不知道,所以eclim將其導入。
將下面的語句添加到vim的ftplugin目錄中的java.vim中就可以使eclim不導入Android.R這個包。
  let b:EclimLocationListFilter = [ 
      \ "R cannot be resolved to a variable", 
    \ ]


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章