使用另一個用戶的 .vimrc 和 .vim/

使用另一個用戶的 .vimrc 和 .vim/

我知道我可以在以 root 身分執行時:source /path/to/some/.vimrc載入使用者的目錄.vimrc,但是我如何才能使用整個.vim/目錄呢?是否有一個/home/user/.vim/可以設定為別名的啟動選項?

如果我知道要尋找什麼,我會在精美的手冊中找到這些資訊。簡單:help .vim:help .vimrc沒有找到有關使用整個目錄的資訊.vim/-U僅適用於.vim文件)。

謝謝。

答案1

使用環境變數VIMINIT指向右邊.vimrcVIMRUNTIME指向正確的.vim目錄。您可以透過以下方式執行此操作env

$> env VIMINIT=/home/user/.vimrc VIMRUNTIME=/home/user/.vim/ vim

$> VIMINIT='let $MYVIMRC = expand('\''~user'\'') . '\''/.vimrc'\''|source $MYVIMRC' vim -c 'set runtimepath=~user/.vim,/var/lib/vim/addons,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,/var/lib/vim/addons/after,~user/.vim/after'

一如既往:如果輸入太長,請建立 shell 函數或 shell 別名。

要了解有關如何vim啟動以及幕後發生的事情的更多信息,請閱讀:help initialization

答案2

看來 和VIMINIT沒有VIMRUNTIME像 akira 所說的那樣使用。

VIMINIT用作 Ex 命令,因此VIMINIT=/home/user/.vimrc會嘗試搜尋並給出以下錯誤:

search hit BOTTOM, continuing at TOP
Error detected while processing VIMINIT:
E486: Pattern not found: home

VIMRUNTIME通常指向 vim 基本支援檔案的安裝位置,例如/usr/share/vim/vim73,所以如果重定向到 /home/user/.vim,vim 會失去許多基本功能,除非你的 vim 剛剛安裝到 /home/usr/.vim。


根據:help -u:help vimrc-u vimrc選項可以指定.vimrc文件,但會跳過大多數其他初始化文件,例如係統 vimrc,例如。/etc/vimrc。如果指定的 vimrc 檔案幾乎可以完成所有工作,那麼這個缺點(如果稱為此)是微不足道的。

根據:help runtimepath,路徑為runtimepath將搜尋支援文件,因此我們可以在啟動時使用選項在來源 vimrc 文件之前新增/home/user/.vim/home/user/.vim/after追加。runtimepath--cmd

綜上所述,我們可以設定這個別名來使用 ~/.vimrc 和 ~/vim:

alias vim='vim --cmd "set runtimepath^=/home/user/.vim" \
               --cmd "set runtimepath+=/home/user/.vim/after" \
               -u /home/user/.vimrc'

附:或者,兩個簡單的符號連結也可能適合您。

mv /root/.vimrc{,.bak}
mv /root/.vim{,.bak}
ln -s /home/user/.vimrc /root/
ln -s /home/user/.vim /root/

答案3

可能是有史以來最好的解決方案。

export MYVIMRC="/xxx/.vimrc"
export VIMINIT=":set runtimepath+=/xxx/.vim|:source $MYVIMRC"

xxx自訂路徑在哪裡。

相關內容