[英].vimrc absolute or relative path in .vim script/plugin/whatelse
我實際上有以下情況,那就是實際工作:
想象一下,你必須以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'
你可能在這個過程中學到了很多,所以我不會把它稱為浪費時間,但是...解決你的實際問題只是使用sudoedit
。 見$ man sudo
。
此外,如果您需要升級的編輯會話權限,您可能需要花一點時間來修改您的設置/工作流程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.