Vim

vimdiff 是否有 sudoedit 等價物?

  • February 25, 2015

我正在嘗試養成使用sudoedit,而不是sudo vim. 這有幾個優點,其中之一是它使用了我使用者的~/.vimrc.

有沒有等價物,而不是使用sudo vimdiff

我試過的

  • 可以不直接使用,而是vimdiff在垂直拆分中打開兩個文件,然後:diffthis在兩者中執行。但是,如果我用 . 打開一個文件sudoedit,那麼我必須直接打開第二個文件,而不是sudoedit自動在/var/tmp.
  • 也可以使用vim -O file1 file2. 然而,不出所料,sudoedit -O失敗了。

要確定要執行的編輯器,請sudo檢查三個環境變數(按順序):SUDO_EDITORVISUALEDITOR,並使用它找到的第一個編輯器。(如果沒有找到,它會退回到預設值。)

所以你可以讓它執行 vimdiff 而不是 vim,如下所示:

$ VISUAL=vimdiff sudoedit file1 file2

如果您的 sudoers 策略只允許您編輯某些文件,這可能會失敗,在這種情況下您可以添加一個參數:

$ VISUAL='vimdiff file1' sudoedit file2

在這種情況下,我假設您可以file1作為普通使用者閱讀,但需要 root 訪問權限才能閱讀file2

(我正在使用VISUAL,因為那是我習慣的;請隨意使用SUDO_EDITOR。)

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