gvim里可以通过设置 guioptions 来达到显示或隐藏某些gui组件。
比如 :set guioptions-=m 可以隐藏菜单栏。
我搞了个函数,让切换方便些。
" toggle guioption
function! ToggleGO(flag)
if &go =~# a:flag
call feedkeys(":set go-=".a:flag."\")
else
call feedkeys(":set go+=".a:flag."\")
endif
endfunction
加到vimrc之后要切换某个选项只要把guioptions的标记传到这个函数里就行了。
比如 :call ToggleGO('m') 可以切换菜单的显示。
在vimrc里映射一些快捷键就行了
"切换菜单栏
nmap ,m :call ToggleGO('m')
"切换工具栏
nmap ,t :call ToggleGO('m')
vim-addon-manager 是一个非常有用的插件,至少对我来说是这样的,看名字就知道是用来管理vim插件的,用它可以在vim里快速的安装其他插件,就像在linux里通过软件包管理工具安装软件那样方便。
不过我用这玩意的最大原因不是因为可以方便的安装插件,而是它可以让你把vim的每一个插件都放在一个独立的目录下,这样就不会和其他插件的文件混在一起了。
想想以前,要装个新vim插件,就是下载下来解压后往.vim目录里一扔,然后所有插件都混在一起,什么plugin了,autoload了,ftplugin了等各个目录里混杂着各种插件的文件,时间久了到底装了多少插件都不知道,想干净的删除一个插件要费老大力,因为删除plugin目录里的文件后可能在其他目录还有一些文件。
现在有了这个工具,我删掉了用了多年的.vim目录,重新整理了一下,每个插件一个单独目录,添加删除非常方便,哈哈。
无聊装了个neocomplcache试下,初步用下来感觉效果的确不错,不过要和 snipMate superTab zencoding插件和谐共存还是要设置一下。。。
首先如果你不需要让他自动启用 (不加 let g:NeoComplCache_EnableAtStartup = 1),或者不需要让他自动弹出提示 (加了 let g:NeoComplCache_DisableAutoComplete = 1),那似乎就不用设置什么了。
更新 2010/3/14:
推荐使用原生vim脚本写的Zen coding插件,无须调用外部程序。
Zen Coding? 其实我看下来有点类似snippet的代码模板,用来提高编码效率,但是 Zen Coding 是针对html编写的,可以用一系列快捷的方式生成html代码,从而提高编码的效率,并且感觉还挺有乐趣的。
我的系统是 debian 桌面环境是 gnome,用 gvim 的时候菜单栏一直都不显示,虽然不影响平时使用,不过有时候想用某个不常用的命令,到菜单里面去找下也很方便的。
今天搜了下,找到个解决办法。
就是打开 ~/.gnome2/Vim ,里面原来的内容是
[Placement]
Dock=Toolbar\\0,0,0,0\\Menubar\\0,0,0,0
只要在 PYTHONPATH 中的程序,用Vim的时候就能够使用omni智能提示功能。
最近新学django,所以把用django-admin 生成的项目目录加入到PYTHONPATH,这样就能使用Vim的omni对这个项目里的模块实现代码提示功能了。
但是用了不久后,发现对某些模块操作时omni功能失效了- -,研究了一下发现是只要导入了django.db.models的模块,智能提示就会失效。
然后我在终端的python中单独导入django 的 models 模块,发现会有异常,原因是那个 django.db 里面会导入 django.conf.settings 对象,然后还会去设置他的属性,这一下就玩完了,因为那里面会检查系统的 DJANGO_SETTINGS_MODULE 值,可以在django/conf/__init__.py中的LazySettings这个类里看到,如果没的话就有异常了。
这个系统值应该是启动server的时候设置的,可以在manager.py里面看到。
这样一来肯定是由于Vim的python omni程序导入模块时一旦碰到异常就不继续了,所以智能提示失效了。
为此我在导入django的models时做了下处理