如何让 `sudo crontab -e` 使用我的 `sudoedit` 环境?

Spa*_*awk 6 vim cron sudo vimrc sudoedit

我已经开始使用sudoedit <file>而不是sudo vim <file>. 优点之一是它使用我的本地~/.vimrc. 但是,当使用 时sudo crontab -e,它会使用/root/.vimrc。有没有办法sudo crontab -e利用我的本地~/.vimrc

这是一个相关的问题,关于使用sudoeditwith vimdiff。然而,取代crontab -evimdiff不起作用。

小智 1

假设你编辑rootcrontab,sudo必须给你root权限。执行此操作后,crontab将调用${VISUAL:-${EDITOR:-vi}}$VISUAL除非它不存在,否则它将使用;在这种情况下,$EDITOR除非它不存在,否则它将使用;在这种情况下,它将使用vi)。

您有几种可能的解决方案。它们都破坏了 提供的安全性sudo,但您必须已经意识到这些问题(并愿意保护您的),否则您一开始.vimrc就不会使用。sudoedit

最好的方法可能是HOMEsudo命令行上添加对变量的赋值,因此crontab认为 HOME 目录是不同的:

sudo HOME=$HOME crontab -e
Run Code Online (Sandbox Code Playgroud)

(如果您的主目录路径中有空格,该命令将不起作用!)