Editors

使用 Visual Studio Code 作為編輯器,例如使用 sudoedit

  • October 11, 2021

我正在使用 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

您需要告訴編輯器等待:

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

如果沒有該選項,VS Code 會派生或通知一個已經在執行的實例,並且控制權會立即返回到sudoedit. 後者看到沒有任何變化並刪除用於編輯目的的臨時副本。(Snap 可能會產生這種效果,但 VS Code 本身就需要這個。)

另請參閱如何在 Gnu/Linux 的 GUI(和 CLI)中正確編輯系統文件(以 root 身份)?

或者,您可以嘗試(在您的情況下可能是過度殺傷的解決方案)我的腳本:

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


我努力把它記錄好,最新的、最近的修訂是穩定的。

無論如何,Stephen Kitt解決方案可能沒問題。


但是sudoedit不幸的是,特別是 VS Code 不能很好地工作 - 正如我被要求提供的詳細資訊,來自我引用的評論:

@StephenKitt 當然。這是大約一年前我的測試。當時唯一的編輯方法是root通過. 有什麼改變嗎?我肯定很想知道。code``sudo code /path/to/file

引用自:https://unix.stackexchange.com/questions/672663