是否有适用于 vimdiff 的 sudoedit 等效项?

Spa*_*awk 1 vim sudo vimrc sudoedit vimdiff

我试图养成使用sudoedit, 而不是sudo vim. 这有几个优点,其中之一是它使用我用户的~/.vimrc.

是否有等价物,而不是使用sudo vimdiff

我试过的

  • 可以不vimdiff直接使用,而是可以垂直拆分打开两个文件,然后:diffthis在两者中运行。但是,如果我用 . 打开一个文件sudoedit,那么我必须直接打开第二个文件,而不是sudoedit/var/tmp.
  • 也可以使用vim -O file1 file2. 然而,不出所料,sudoedit -O失败了。

Jan*_*der 6

要确定哪些编辑器来运行,sudo检查三个环境变量(按顺序): ,SUDO_EDITORVISUALEDITOR,并使用它找到的第一个编辑器。(如果没有找到,它会回退到默认值。)

所以你可以让它运行 vimdiff 而不是 vim 如下:

$ VISUAL=vimdiff sudoedit file1 file2
Run Code Online (Sandbox Code Playgroud)

如果您的 sudoers 策略只允许您编辑某些文件,这可能会失败,在这种情况下,您可以添加一个参数:

$ VISUAL='vimdiff file1' sudoedit file2
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我假设您可以file1以普通用户的身份阅读,但需要 root 访问权限才能阅读file2.

(我正在使用,VISUAL因为这是我习惯的;请随意使用SUDO_EDITOR。)