我正在使用 Kubuntu 20.04。
当我运行时sudoedit /etc/fstab
,VS Code 会打开一个空白文档,并且 CLI 会立即返回(请参阅下面的详细信息)。
如果我运行export SUDO_EDITOR=nano
,文档将在 nano 编辑器中打开,其内容符合/etc/fstab
预期。
如果我运行export SUDO_EDITOR=/snap/bin/code
,它会再次打开带有空白文档的 VS Code。
我究竟做错了什么?或者这是一个错误?
kevin@kevcoder00 ~ $ echo $VISUAL
kevin@kevcoder00 ~ $ echo $SUDO_EDITOR
kevin@kevcoder00 ~ $ echo $EDITOR
/snap/bin/code
kevin@kevcoder00 ~ $ sudoedit /etc/fstab
[sudo] password for kevin:
sudoedit: /etc/fstab unchanged
您需要告诉编辑器等待:
如果没有该选项,VS Code 会派生或通知一个已经在运行的实例,并且控制权会立即返回到
sudoedit
. 后者看到没有任何变化并删除用于编辑目的的临时副本。(Snap 可能会产生这种效果,但 VS Code 本身就需要这个。)另请参阅如何在 Gnu/Linux 的 GUI(和 CLI)中正确编辑系统文件(以 root 身份)?
或者,您可以尝试(在您的情况下可能是过度杀伤的解决方案)我的脚本:
https://github.com/burianvlastimil/sudoedit-enhanced
我努力把它记录好,最新的、最近的修订是稳定的。
无论如何,Stephen Kitt的解决方案可能没问题。
但是,
sudoedit
不幸的是,特别是 VS Code 不能很好地工作 - 正如我被要求提供的详细信息,来自我引用的评论: