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失败了。要确定哪些编辑器来运行,sudo检查三个环境变量(按顺序): ,SUDO_EDITOR,VISUAL和EDITOR,并使用它找到的第一个编辑器。(如果没有找到,它会回退到默认值。)
所以你可以让它运行 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。)