
我定義了一個別名,
alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.vimrc'
但是當我輸入時svi myfile
我得到
處理 /home/jeff/.vimrc 時偵測到錯誤:
第 1 行:
E117:未知功能:病原體#infect
看來我需要在執行之前強制 vim 掃描我的 .vim 目錄,call pathogen#infect()
我該怎麼做,一般來說,如何確保當我運行時sudo vim
獲得與運行時相同的環境vim
?
答案1
當我執行 sudo vim 時,如何獲得正常的 vim 初始化?
透過使用$ sudo -e filename
而不是$ sudo vim filename
.
該命令將:
- 詢問您的密碼(如果 sudoers 安全政策需要);
filename
複製一份/tmp/
;- 打開它作為你透過依序檢查以下內容找到第一個編輯器:
$SUDO_EDITOR
、$VISUAL
、$EDITOR
,最後是 /etc/sudoers 中指定的編輯器清單; - 寫入時將其複製回原始檔案名稱。
請參閱man sudo
和man sudoers
了解更多資訊。
答案2
雖然我打算接受 @romainl 的答案作為首選解決方案(在他稍微調整一下之後),但我又嘗試研究解決我遇到的錯誤的方法,因為我討厭計算機戰勝我。
事實證明,該錯誤與以 root 身分執行時 vim 選項的解決方式有關runtimepath
。因此,為了糾正錯誤,我稍微更改了別名,alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.svimrc'
並將以下三行放入 /home/jeff/.svimrc
set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after,/home/jeff/.vim
source /etc/vimrc
source /home/jeff/.vimrc
我不再收到錯誤,我的自訂內容似乎正在工作(到目前為止)。但如果我遇到任何其他故障,我會仔細閱讀:help initialization
更多內容,看看我的 .svimrc 檔案中還應該包含哪些內容...