最近要写Scala代码,本来想用它的Eclipse插件,但Scala这种语言较新,Eclipse插件的补全功能太弱(或是我没配置好?),所以转向Vim。
NERDTree : http://www.vim.org/scripts/script.php?script_id=1658
按树形浏览项目文件,然后你可以选择指定的文件打开编辑,类似于Eclipse的资源浏览器。
当然Vim自带的netrw也有文件浏览的功能,但同时只能看一个目录
用命令NERDTree触发
AutoComplPop : http://www.vim.org/scripts/script.php?script_id=1879
相当NB的插件。我一直很喜欢SciTE的自动补全,因为它可以候选词只有一个的时候自动弹出来。这个插件让Vim也可以自动弹出补全窗口,相当于你随时都按着Ctrl-N。而且也是通过当前所有打开的缓冲区里的单词token来补全的,既不需要太高的CPU占用,又很实用。
snipMate : http://www.vim.org/scripts/script.php?script_id=2540
为Vim加上像TextMate一样的code snippets。用tab键触发。
其实说到代码片段,很多人的思路都是:使用编辑器内置的功能,比如Eclipse的code snippets,或Vim的这个插件,或map定义。如果我们换个思路:为什么不用外部的软件?
我推荐使用AutoHotKey(http://www.autohotkey.com/ ),工作在输入法级别的键盘宏工具。可惜的是只能用在Windows上。
我们希望的功能无非是键入p,再按下tab,然后变成<p></p>,而且光标还在中间,诸如此类的功能。AutoHotKey的Hot String能很好的做到这一点,它可以把一个按键序列绑定到一个用于触发的字符串上。而且你只需在AutoHotKey中定义一次,就可以在Vim、Eclipse、记事本……所有的文本编辑器中使用——因为它工作在输入法模式。
但我之所以还要用snipMate,是因为AutoHotKey对带有变量的code snippets支持得不够好——它毕竟不是专门针对编程设计的。
还有些人推荐的Vim插件是BufExplorer或MiniBufExplorer,用来浏览当前缓冲区,我因为在Windows下用gVim,用菜单就可以浏览当前缓冲区,所以用不着。
顺便晒下我的vim会话文件:
每次加载会话文件就可以自动执行这些命令,相当于Eclipse的project文件。有了这些,用Vim编写和管理一个project都方便不少。
相关日志:
我的 AutoHotKey 脚本:http://blog.youkuaiyun.com/shell_picker/archive/2010/09/02/5860073.aspx