我使用的是 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 本身就需要这样做。)
答案2
或者,您可以尝试(在您的情况下可能是一个过度的解决方案)我的脚本:
https://github.com/burianvlastimil/sudoedit-enhanced
我努力把它记录下来,最新的、最近的修订版是稳定的。
但,sudoedit
不幸的是,特别是 VS Code 不能很好地工作 - 当我被要求提供详细信息时,我引用了评论:
@StephenKitt 当然。这里是根据我一年前的测试,大约。
root
当时唯一的编辑方式code
是通过sudo code /path/to/file
。有什么改变吗?我当然想知道。