使用 Visual Studio Code 作为编辑器,例如使用 sudoedit

使用 Visual Studio Code 作为编辑器,例如使用 sudoedit

我使用的是 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

答案1

你需要告诉编辑稍等:

SUDO_EDITOR="/snap/bin/code --wait" sudoedit /etc/fstab

如果没有该选项,VS Code 会分叉或通知已在运行的实例,并且控制权会立即返回到sudoedit.后者发现没有任何更改,并删除用于编辑目的的临时副本。 (Snap 可能有助于实现这种效果,但 VS Code 本身就需要这样做。)

也可以看看如何在 Gnu/Linux 的 GUI(和 CLI)中正确编辑系统文件(以 root 身份)?

答案2

或者,您可以尝试(在您的情况下可能是一个过度的解决方案)我的脚本:

https://github.com/burianvlastimil/sudoedit-enhanced


我努力把它记录下来,最新的、最近的修订版是稳定的。

任何状况之下,斯蒂芬·基特解决方案可能没问题。


sudoedit不幸的是,特别是 VS Code 不能很好地工作 - 当我被要求提供详细信息时,我引用了评论:

@StephenKitt 当然。这里是根据我一年前的测试,大约。root当时唯一的编辑方式code是通过sudo code /path/to/file。有什么改变吗?我当然想知道。

相关内容