配置Vim开发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来画界面。不过你习惯了文本编辑的话,其实道理是一样的。

相关推荐