繁体   English   中英

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

[英]Options for .vimrc from command-line arguments?

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

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

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

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

谢谢!

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

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

所以在你不那么强大的机器上,你可以将vim别名为vim --cmd 'let weak=1' ,然后在$VIMRC你可以说:

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

看看来源:

source /foo/bar/another_vimrc

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

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

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

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

:help -u
:help startup

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

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

〜/ .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中使用的终端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM