其实我有以下的情况,那究竟是什么工作:的.vimrc绝对或相对路径/ whatelse
假设你有作为一个文件根的工作,但你要自己乌尔的.vimrc不需要调用“-u”。 于是我开始了下面的“插件”:
let g:realuser=system('w | grep $(ps w | grep ' . getpid() . ' | head -n1 | awk "{ print \$2 }") | awk "{ print \$1 }"')
if $USER == 'root'
let g:vimrc=system('printf /home/%s/.vimrc '. g:realuser)
if filereadable(g:vimrc)
exec ":source " . g:vimrc
finish
endif
endif
我把它称为“realuser.vim”和“源”,它在根的.vimrc里(/root/.vimrc)。
如果您现在通过SSH或通过GNOME通过Ubuntu登录到您的服务器,您将转到“su - ”并以root身份登录。然后你转到你的工作目录并打开文件。 脚本检测到登录到本机的真实用户是“yourlogin”。然后它检查/ home/yourlogin /文件“.vimrc”是否存在。所以,这是它加载它。
我的问题是,在/home/yourlogin/.vimrc是以下行:
source ~/.vim/plugin/someplugin.vim
所以,你猜怎么着。 /root/.vimrc加载/home/yourlogin/.vimrc,因此会检查/root/.vim/plugin/someplugin.vim,因为它只存在于/home/yourlogin/.vim中,所以不会检测它。
我如何使用相对路径或这样的事情来告诉vim源文件只在/home/yourlogin/.vim/中?
这很像一个魅力,但实际上我仍然有一些Filetype-Plugins的问题。他们是由“filetype插件”自动加载我猜,但它仍然加载/root/.vim/ftplugin/*而不是/home/yourlogin/.vim/ftplugin/*。这就是我最后一个问题,我猜。 我的第一个问题的解决方案是'exec':let $ HOME ='“。系统('printf/home /%s'。g:realuser)。 “”“' – boesing