Permissions

以我的使用者身份以 root 權限啟動 Vim

  • November 29, 2016

我有我的自定義 Vim 文件~/.vim~/.vimrc. 但是,有時我必須編輯一些文件/etc等。

如果我這樣啟動 Vim:

$ sudo vim /etc/rc.conf

我失去了我的配置,因為 Vim 使用它的預設配置。那麼:如何以 root 權限執行 Vim 來編輯文件而不會失去我的使用者設置(位於我的主目錄中)?

我努力了:

$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"

但是 Bash 給了我Permission denied。但是,上述命令適用於例如:/etc/acpi/handler.sh. 這是為什麼?

注意:使用者名不是root。

而不是sudo vim /etc/rc.conf使用sudoedit /etc/rc.confor sudo -e /etc/rc.conf。您可能需要將 EDITOR 環境變數設置為 vim。這將以普通使用者身份執行 vim 本身,使用您的正常配置,在您退出時複製回來的文件副本上。

你可以-u用來告訴 vim 載入哪個 rc 文件。例如

sudo vim -u ~user/.vimrc /etc/rc.conf

如果每次需要輸入時都輸入它很乏味,請創建一個別名:

alias sudovim='sudo vim -u ~user/.vimrc'

請注意,vim -u如果外掛或呼叫的 rc 文件載入相對於 $ HOME - $ HOME 現在是 root 的主目錄,而不是使用者的。這可以通過根目錄中的符號連結或硬編碼絕對路徑來解決。

引用自:https://unix.stackexchange.com/questions/46699