我已经开始使用sudoedit <file>
而不是sudo vim <file>
.优点之一是它使用我本地的~/.vimrc
.然而,当使用 时sudo crontab -e
,它会/root/.vimrc
改为使用。有没有办法sudo crontab -e
利用我的本地~/.vimrc
?
这里有一个相关问题,关于使用sudoedit
with vimdiff
。然而,替代crontab -e
是vimdiff
行不通的。
答案1
假设你想要编辑root
crontab,sudo
必须给你root权限。执行此操作后,crontab
将调用${VISUAL:-${EDITOR:-vi}}
($VISUAL
除非它不存在,否则它将使用;在这种情况下,$EDITOR
除非它不存在,否则它将使用;在这种情况下,它将使用vi
)。
您有几种可能的解决方案。它们都破坏了 提供的安全性sudo
,但您必须已经意识到这些问题(并愿意保护您的),否则您一开始.vimrc
就不会使用。sudoedit
HOME
最好的方法可能是在命令行上添加对变量的赋值,sudo
因此crontab
认为 HOME 目录是不同的:
sudo HOME=$HOME crontab -e
(如果您的主目录路径中有空格,该命令将不起作用!)