gpt4 book ai didi

linux - .vimrc .vim script/plugin/whatelse 中的绝对或相对路径

转载 作者:可可西里 更新时间:2023-11-01 11:43:26 32 4
gpt4 key购买 nike

我实际上遇到了以下情况,这才是真正有效的:

假设您必须以 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”并在根目录的 .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 并因此 checkin /root/.vim/plugin/someplugin.vim,它不存在,因为它仅在/home/yourlogin/.vim 中

我如何使用相对路径或类似的东西告诉 vim 源文件只在/home/yourlogin/.vim/中?

最佳答案

相对相当于:source:runtime .

source ~/.vim/plugin/someplugin.vim

成为

runtime plugin/someplugin.vim

有了这个,只要你也适应'runtimepath'中的路径选项,它应该可以工作。

或者,您也可以更改 $HOME 的值在 Vim 内部;这会影响 ~ 的扩展,也是:

:let $HOME = '/home/yourlogin'

关于linux - .vimrc .vim script/plugin/whatelse 中的绝对或相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19401943/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com