微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – .vim脚本/插件/ whatelse中的.vimrc绝对路径或相对路径

我实际上有以下情况,那就是实际工作:

想象一下,你必须以root身份在一个文件上工作,但你想要自己的.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”,并在root的.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/?

解决方法

相对等效于:source是:runtime.

source ~/.vim/plugin/someplugin.vim

runtime plugin/someplugin.vim

有了这个,只要你还调整’runtimepath’选项中的路径,它应该工作.

或者,您也可以在Vim中更改$HOME的值;这也影响了〜的扩展:

:let $HOME = '/home/yourlogin'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐