簡體   English   中英

.vim腳本/插件/ whatelse中的.vimrc絕對路徑或相對路徑

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM