为此,您可以使用自己的变量启动 VIM,然后.vimrc
根据该变量获取不同的文件。
在您的.vimrc
(显示一些不同的使用方式)中:
"# this is _not_ an error if env. variable 'what_to_do' isn't used
let WhatToDo = $what_to_do
if WhatToDo == "this"
"# Use 'source'
source $HOME/.vim/.vimrc_this
"# This should not do 'common stuff'
finish
elseif WhatToDo == "that"
"# ...or use 'runtime', finds and sources the first file with the given
"# name looking in folders in 'runtimepath' (default includes e.g. ~/.vim)
runtime .vimrc_that
else
runtime .vimrc_default
endif
"# common stuff...
然后在 Unix 命令行中使用它:
$ vim text.txt # will use '.vimrc_default'
$ what_to_do=that vim text.txt # will use '.vimrc_that'
$ # what_to_do is not defined after that line
当在同一行使用 Unix 环境变量作为命令时,该变量仅对该命令有效。注意!=
设置 Unix 变量前后不能有空格。
或者你可以在之前设置它:
$ what_to_do=that
$ vim text.txt # will use '.vimrc_that'
$ # what_to_do has still the value "that" here
或者在脚本(startvim)中:
what=$1
shift
what_to_do=$what vim "$@"
并将其与
$ startvim that <whatever flags you want> text.txt
或者最好的方法可能是为每个选项使用一个别名:
$ alias vim_that='what_to_do=that vim'
然后您可以使用与使用相同的方式使用它vim
,并使用您想要的标志。例如
$ vim_that <whatever flags you want> text.txt
使用环境变量还有一个替代方法,使用标志--cmd
--cmd {command} --cmd {command} 将在处理任何 vimrc 文件之前执行。否则,它的作用类似于 -c {command}。您最多可以使用这些命令中的 10 个,独立于“-c”命令。{Vi 无此功能}
并
以
$ vim --cmd 'let WhatToDo = "that"' text.txt
.
_ _ _ _
$ alias vi_that='vi --cmd "let WhatToDo = \"that\""'
if ! exists("WhatToDo") | let WhatToDo = "" | endif
.vimrc
$what_to_do
您当然可以使用-c "source the_file_you_want"
并拥有一个空的.vimrc
,但是在开始序列中的采购可能与在.vimrc
.
帮助:
:h runtime
:h runtimepath
:h --cmd