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
。)