从命令行参数中选择.vimrc?

时间:2014-01-14 19:02:07

标签: vim

我有一个自定义的.vimrc文件,我在很多不同的机器上使用它。

有些机器的功能不如其他机器,能够加载.vimrc文件的“精简”版本会更好。但是,我想维护一个.vimrc以避免碎片。

理想情况下,我想从命令行向我的.vimrc传递参数。如果选择“minimal”选项,.vimrc将跳过加载资源最密集的插件。

有谁知道最好/最干净的方法吗?

谢谢!

编辑:我所说的较慢的机器是通过SSH的Raspberry Pi。 Vim本身并不慢,虽然我有几个插件,包括NERDTree和Syntastic,需要花费大量时间来加载Pi的有限CPU。通过取出大多数用于“最小”配置的插件,我将加载时间从3.5秒减少到0.5秒。

4 个答案:

答案 0 :(得分:11)

您可以在加载任何VIMRC之前使用--cmd开关执行命令。

因此,在功能较弱的机器上,您可以将vim替换为vim --cmd 'let weak=1',然后在$VIMRC中,您可以说:

if exists('weak')
  echo "poor machine"
endif

答案 1 :(得分:3)

看一下来源:

source /foo/bar/another_vimrc

你的'重'vimrc可以只提供基本的vimrc并添加你想要的东西。对于项目/机器特定的缩写,ctags等,这也非常方便。

答案 2 :(得分:2)

这不会保留单个vimrc文件,但为了其他有相同问题的人(如页面顶部所述):

$ vim -u ~/.vim-min.vim

请注意,这将禁止加载系统vimrc文件(如果有)和您的个人vimrc文件。

:help -u
:help startup

(参见第二篇参考文献的第3步。)

答案 3 :(得分:0)

从上面的优秀答案中,我得到了这个工作:

〜/ .vimrc:

if exists('FLAG')       " 'FLAG' passed from ~/.bashrc 'vimm' alias
    set textwidth=150   " (launches vim in expanded terminal window)
    set lines=58
else
    set textwidth=79
    set lines=40
endif

〜/ .bashrc:

# Needed to combine following two lines for ~/.vimrc use:
#   alias vimm='konsole --geometry 1900x1040+0+0 -e "bash -c \"vim\""; exit'
#   vim --cmd 'let FLAG=1'
str="'let FLAG=1'"
alias vimm='konsole --geometry 1900x1040+0+0 -e "bash -c \"vim --cmd $str\""; exit'

现在,'vim'(正常使用)在正常大小的终端中启动Vim,而'vimm'在更大的终端中启动Vim(备用设置)。

'Konsole'是我在Arch Linux中使用的终端。