设置quickx的vim开发环境
在 MacOS 上搭建 cocos2d-x / quick-x 的 vim 开发环境
我的 Vim 环境设置,请参考:http://localhost:4000/work/2014/06/16/vim-revamp/
Lua 环境
Vim 对 Lua 的支持
Vim 的 Lua 支持,我所找到的有:https://github.com/xolox/vim-lua-ftplugin, https://github.com/vim-scripts/lua-support
试用下来, lua.vim 非常好,该有的功能都有了,可以支持 lua 的代码库自定义,而且这个插件的 viml 写得好,不用深钻脑洞, 就它了。
在 _vimrc 中加入配置如下:
Plugin ‘xolox/vim-misc’ " required by lua.vimPlugin ‘xolox/vim-lua-ftplugin’ " Lua file type plug-in
for the Vim text editor这样,在 vim 中执行 BundleInstall 之后,对 lua 的语法高亮,自动格式化,基本库的自动补完就都有了。
Vim 对 quick-x 的 lua framework 的支持 (keywords)
lua.vim 支持环境变量 https://github.com/xolox/vim-lua-ftplugin/issues/24 另一方面,quick-x 的安装会自动在 .bash_profile 中增加QUICK_COCOS2DX_ROOT 环境变量, 因此,通过在 .bash_profile 通过以下脚本可以生成支持 quick-x 的 LUA_PATH 环境变量来:
# add cocos2d-x related lua files into LUA_PATH
if ! -z “QUICK_COCOS2DX_ROOT" ]];
then
export LUA_PATH="{QUICK_COCOS2DX_ROOT}/framework/?.lua;${LUA_PATH}”
fi这样,在重新启动 vim 后,就能够自动补完 quick-x API 了
quick-x 代码模板 (snippets)
我使用 SnipMate + AutoComplPop 这两个插件来实现 Vim 中的代码模板, 基于 Dualface 的 https://github.com/dualface/luadocx 工具, 我写了一个简单的https://github.com/yi/luadocx#json2snippetcoffee 来生成 https://gist.github.com/yi/5dcf8d51242d7d59b4b1
用起来是图中这样滴:
缺憾
目前的这套支持配置最大的缺憾是代码模板的便捷性。由于 AutoComplPop 是一个 VimL 实现,所以为了避免卡顿, AutoComplPop 只有在输入大写字符时才会调用 SnipMate。而且匹配到的候选项是不会跟随输入进展而进一步过滤。 这在同起始字母中选中候选的代码片段带来了一些不便。
我想一个更优化的方式是做一个基于 http://valloric.github.io/YouCompleteMe/ 的代码补完和片断模板的实现。 YouCompleteMe 是一个 C/S 结构,Vim 客户端只负责做输入触发,而候选词是由服务器端计算提供的。这个结构非常类似于 jQuery Ajax Suggestions。 这种结构可以使客户端Vim 拥有无限量的补完可扩展性,同时不会遇到输入卡顿。 可惜目前的 YouCompleteMe 对于 Lua 的支持还是使用 Vim 自带的 OminComplete 模块,而且目前 YouCompleteMe 对 Vim 的客户端版本要求过高,需要进行 +Python 编译。 这些问题都造成启用壁垒。还不便于在我们现在的团队情况下推广。
原文地址:http://yi.github.io/work/2014/06/20/在MacOS上设置quickx和cocos2dx的Vim开发环境