vim 插件如何按需启用
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
vim 插件如何按需启用
vim 通常加载 /etc/vim/vimrc 或 ~/.vimrc ,我特别建了一个 ~/.vimide/vimrc ,vim -u ~/.vimide/vimrc 即可启用特别配置的 IDE 。
这是按需启用配置,因为我并不想每个 vim 都启用那一堆复杂的 IDE 配置,这样很好用。
安装了 vim-scripts 包,里面有很多插件,但默认一个都没有启用。
在 ~/.vim/plugin 中创建插件的链接即可启用,比如
cd ~/.vim/plugin
ln -s /usr/share/vim-scripts/plugin/minibufexpl.vim
但这样任何时候都启用了该插件。
问题,我如何只在启动我的 IDE 时启用该插件。
这是按需启用配置,因为我并不想每个 vim 都启用那一堆复杂的 IDE 配置,这样很好用。
安装了 vim-scripts 包,里面有很多插件,但默认一个都没有启用。
在 ~/.vim/plugin 中创建插件的链接即可启用,比如
cd ~/.vim/plugin
ln -s /usr/share/vim-scripts/plugin/minibufexpl.vim
但这样任何时候都启用了该插件。
问题,我如何只在启动我的 IDE 时启用该插件。
- zkwlx
- 帖子: 988
- 注册时间: 2009-10-09 12:54
- 系统: debian
- 来自: 北京某胡同
Re: vim 插件如何按需启用
写个脚本,替换下VIM命令,如果启动IDE就ln,然后推出再自动删除连接,反正只是个符号连接,速度应该不会有影响 

- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
- zkwlx
- 帖子: 988
- 注册时间: 2009-10-09 12:54
- 系统: debian
- 来自: 北京某胡同
Re: vim 插件如何按需启用
晕,直接这样不就得了

代码: 全选
alias vim="vim --noplugin"
ide="vim"
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: vim 插件如何按需启用
我的办法:
把不需要一直启用的插件放在其它的目录(如 ~/.vim/so),自定义个命令去 so 它们就可以了。
把不需要一直启用的插件放在其它的目录(如 ~/.vim/so),自定义个命令去 so 它们就可以了。
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: vim 插件如何按需启用
竟然就是 source 这么简单 

- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: vim 插件如何按需启用
还是不明白,楼上说的 au
其实我要的就是在 vimrc 中手动指定要加载的插件
其实我要的就是在 vimrc 中手动指定要加载的插件
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: vim 插件如何按需启用
自动执行就放 plugin 下好了。xhy 写了:so不能自动执行,不够方便自由建客 写了:竟然就是 source 这么简单
或者在 vimrc 里根据 v:progname 判断该 so 哪些插件。
比如给 vim 弄个叫 vide 的链接,然后在 vimrc 里判断如果 v:progname 是 vide 就 so A B C 这样子好了。
这样比 alias 好,因为 alias 只能在交互式 shell 里用。像 .desktop 文件、运行程序对话框、指定使用编辑器时都不行。
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: vim 插件如何按需启用
用au有个好处,可以指定是在什么时候执行,比如BufEnter,TabEnter,BufRead等等,lilydjwg 写了:自动执行就放 plugin 下好了。xhy 写了:so不能自动执行,不够方便自由建客 写了:竟然就是 source 这么简单
或者在 vimrc 里根据 v:progname 判断该 so 哪些插件。
比如给 vim 弄个叫 vide 的链接,然后在 vimrc 里判断如果 v:progname 是 vide 就 so A B C 这样子好了。
这样比 alias 好,因为 alias 只能在交互式 shell 里用。像 .desktop 文件、运行程序对话框、指定使用编辑器时都不行。
或者指定au根据文件类型,自动执行相应的脚本,不需要给vim弄个别的名字,
可以根据打开的文件类型,或者其它上下文判断要载入哪些插件。
目前负债150多万
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: vim 插件如何按需启用
Vim 有 WantIDE 事件?xhy 写了:
用au有个好处,可以指定是在什么时候执行,比如BufEnter,TabEnter,BufRead等等,
或者指定au根据文件类型,自动执行相应的脚本,不需要给vim弄个别的名字,
可以根据打开的文件类型,或者其它上下文判断要载入哪些插件。

另外,根据打开的文件类型执行的话,我习惯放到 ftplugin 下,方便管理。
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: vim 插件如何按需启用
我启动 IDE 用的是专门的 vimrc 文件,不用在 vimrc 中判断是不是 IDE ,只要直接写在里面就行了。目前用的两个插件基本工作正常,就是 let Tlist_Auto_Open = 1 形同虚设,还得要 TlistOpen 。
代码: 全选
so /usr/share/vim-scripts/plugin/taglist.vim
let Tlist_WinWidth = 32
let Tlist_Exit_OnlyWindow = 1
let Tlist_Auto_Open = 1
TlistOpen
so /usr/share/vim-scripts/plugin/minibufexpl.vim
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: vim 插件如何按需启用
那是因为taglist是在Vim启动时才检查是否需要自动打开的。so 的时候,VimEnter 事件早已发生过了。自由建客 写了:我启动 IDE 用的是专门的 vimrc 文件,不用在 vimrc 中判断是不是 IDE ,只要直接写在里面就行了。目前用的两个插件基本工作正常,就是 let Tlist_Auto_Open = 1 形同虚设,还得要 TlistOpen 。