背景
在windows上,虽然ctags+cscope 甚至可以对java启用, 但是重名的太多,我需要更精确些。于是找到eclim。YCM 目前还不支持java, 且在linux我好像偶尔会卡的感觉, 而eclim 同时支持java和C(需CDT), 虽然基于java (是的: 配置 C IDE 基于java 写的eclipse 需要gui, 在linux ssh 连接终端是不能跑eclipse的),但是我觉得速度还可以,没卡过。让我们感觉到后浪推前浪的感觉。但是习惯了vim 方式编辑,eclipse里面的编辑器就看不上了。下面是vim editor + eclipse syntax/sematics parser的强强联合。
JDT
下载安装请参考官网,我不做重复了。
:echo &compatile "是0
:filetype "filetype plugin indent都是打开的。
测试是否安装成功
:PingEclim
:ProjectCreate /path/to/xx -n java
:ProjectList
:NewSrcEntry /path/to/src
补全快捷键 c-x c-u 选下一个c-n
保存后,执行
:Java
CDT
安装离线包:
Help->Install New-->Add-->Local
建立工程:
File->New->Project
File -> New Folder -> Advanced -> Link tofolder in FS.
设置全局系统头文件路径:
目前好像没有,一个折中的办法是导出/导入设置:
Project > Properties > C/C++ General > Pathsand Symbols >Includes
那个Includes tab在最左边,一开始我怎么都没找到,你只需点Add上面那个向左箭头就可以出来。
然后Add --> File System --> 我选择的目录是
E:\mingw-w64-dgn_32\i686-w64-mingw32\include
点一下右边的export, 然后点下面的exportsettings.
以后就点import settings就省去上面的麻烦了。
workspace
因为eclimd.bat默认用的是%HOME%\workspace,让eclipse.exe也默认用这个。目的是在eclipse菜单设置的让eclim也用得到,另外也是为了一致性。
我关注这个是因为.cproject 设置include路径太麻烦了,万恶的xml啊!
注意:1. 因为是独占使用,只能同时开一个。
2. 要等到eclimd.bat出现Server Started才开gvim.exe。不然:ProjectInfo说没有eclimd instance。
gvim
Plugin 菜单有命令,如果你忘了的话。
常用的:CProjectConfigs, CSearch -- 跳到声明或定义, CCallHierarchy -- 调用树。
还有你:w后自动:Validate的。
默认跳转是新开一个窗口,eclipse中是新开tab。本身屏幕空间有限,对于vimer来说不习惯,需要在
_vimrc中加上
" Eclim 在同一窗口打开另一个文件
let g:EclimDefaultFileOpenAction = 'edit'
CCallHierarchy 图,语义检查和泡泡提示:
todo:
ubuntu: 补全快捷键没作用,可能和YCM冲突,因为我在winxp没有ycm反而正常。
ubuntu: Required setting org.eclim.java.run.mainclass