【发布时间】:2011-08-08 01:36:39
【问题描述】:
现在人们正在将完整的 Vim 设置(包括 vimrc 以及插件、颜色、语法等)放在 github 上,我想要一种方式来“按原样”使用他们的设置,所以我可以看到我可能想将什么转移到我的 Vim 设置中。
=====当前进度==(2012年9月28日)=============================== =====================
我有一个解决方案可以解决这个问题,它需要在 github 上进行更多改进,但我想更新它以显示我在做什么。我已经让普通的 .vimrc 文件检查用户环境变量以确定在哪个 repo 上启动 gvim 会话。我已经将其他人的 Vim 安装克隆到一个名为“vimfiles_Sets”的文件夹中,每个文件夹都放置在一个以所有者的 github 名称命名的单独文件夹中(其中一个名称最终出现在用户环境变量中:“vimActiveRepo”)。创建用户环境变量时,将其设置为包含 Vim 安装的存储库。
运行时路径只需要进行两次更改,第一个条目被 repo 的绝对路径覆盖,最后一个条目通过添加“after”文件夹得到相同的处理。这是在 .vimrc 文件中完成的,该文件然后根据 repo 的所有者 vimrc 文件获取文件。
Linux 上的人们已经开始将他们的 .vimrc 文件符号链接到他们 repo 中名为 vimrc 的文件,我将该文件复制到 vimrc_toLoad,(在 git 中未跟踪),因此您可以对其进行任何需要的调整而无需对其进行修改如果您更新存储库,将被重创。有时需要对此文件进行调整以使一切正常,例如文件名路径、病原体/vundle 调用等。
在您的安装中设置了“vimActiveRepo”(您将其制作成 git repo,因此可以轻松上传到 github 进行共享),任何 cmd 行或 gui 调用都将启动您的正常安装。由于您不太可能为其他人放弃您的安装,因此我们实际上从未更改此值。我们要做的是让一个应用程序启动一个 cmd/shell 会话,为该会话更改“vimActiveRepo”(即在会话中掩盖它的值),然后启动您想要使用的 Vim 存储库。
我有一个 python 程序,它使用 wx 提供可用存储库的下拉列表,并带有一个“运行选择”按钮来启动它。
=====较早的帖子:======================================== =============================== 在本地克隆的存储库中获取 vimrc 文件之前,我在 .vimrc 中构建了一个跨越存储库的自定义运行时路径,但我认为我错了,据我可以通过查看 :scriptnames ,是不是在 repo 中调用了 ~.gvimrc 而不是一个。这些天来,让 .gvimrc “重新获取” vimrc 文件以获取基于 gui 的设置似乎很常见,这些设置在第一次获取 vimrc 时没有加载,因为 Vim 没有运行 gui。这是我通过查找 :scriptnames 的普通 Vim 设置,并将其与 :scriptnames 的结果进行比较的结果,该副本来自该设置的副本,该副本放置在类似 repo 的一组目录中。
在 Windows 7 上运行 Vim 7.3
~.vimrc 文件:
" change the following line to try out a different vim setup
let repo = 1
" Table of values and the repo they will activate
" 0 -- the normal home directory based vimrc
" 1 -- try John Anderson's setup
" 9 -- run a copy of the home directoy based vim from eleswhere
if repo == 0
source ~/.vimrc_trf
elseif repo == 1
set runtimepath=C:\VC\Git\vimfiles_ja\vimfiles
set runtimepath+=$VIM/vimfiles
set runtimepath+=$VIMRUNTIME
set runtimepath+=$VIM/vimfiles/after
set runtimepath+=C:\VC\Git\vimfiles_ja\vimfiles\after
source C:\VC\Git\vimfiles_ja\vimfiles\vimrc
echo 'Hi there, running out of _ja'
elseif repo == 9
set runtimepath=C:\VC\Misc\vimfiles_trf\vimfiles
set runtimepath+=$VIM/vimfiles
set runtimepath+=$VIMRUNTIME
set runtimepath+=$VIM/vimfiles/after
set runtimepath+=C:\VC\Misc\vimfiles_trf\vimfiles\after
source C:\VC\Misc\vimfiles_trf\vimfiles\vimrc
echo 'Hi there, running out of _trf'
endif
有什么想法吗?
汤姆
好吧,刚刚修改 ~/.gvimrc 以获取存储库中的 gvimrc 的进一步工作让我解决了这个问题,但它现在看起来像病原体(似乎最常用的插件管理器),没有正确更改runtimepath 包含存储在 repo 中的 bundle/ 子目录。
我将不得不对此进行调试,看看需要做些什么来修复它。
【问题讨论】:
-
我围绕 ~\gvimrc 被加载的事实进行了编码。我只是让它在 repo 中获取一个 gvimrc 文件,对于我正常的 vim 设置,它只是再次获取 vimrc。这可行,但来自 repo 的 :scriptnames 结果仍然与我通过正常的 ~\.vimrc、~\.gvimrc、~\vimfiles、Program File\Vim 实例运行得到的结果不匹配。一定是一些我还不明白的初始化差异。
-
我将不得不等到我可以在 Windows 机器上进行进一步评论,但我确实想添加一个快速说明:启动 gVim 时; .vimrc 然后加载 .gvimrc。 (:he gui-init)。
标签: vim