Misalkan saya ingin membuka file dalam sesi Emacs yang ada menggunakan su
atau sudo
, tanpa menjatuhkan ke shell dan melakukan sudoedit
atau sudo emacs
. Salah satu cara untuk melakukan ini adalah
C-x C-f /sudo::/path/to/file
tetapi ini membutuhkan perjalanan pulang pergi yang mahal melalui SSH . Apakah ada cara yang lebih langsung?
[EDIT] @JBB benar. Saya ingin dapat memohon su
/ sudo
menyimpan serta membuka. Tidak masalah (tetapi tidak ideal) untuk mengotorisasi ulang saat menyimpan. Yang saya cari adalah variasi find-file
dan save-buffer
yang bisa "disalurkan" melalui su
/ sudo
.
emacs
file-permissions
sudo
Chris Conway
sumber
sumber
sudoedit
menyebutkannya. Sangat berguna.Jawaban:
Yang menyenangkan tentang Tramp adalah Anda hanya membayar pulang pergi ke SSH saat Anda membuka file pertama. Sudo kemudian cache kredensial Anda, dan Emacs menyimpan pegangan, sehingga file yang dibuka dengan sudo berikutnya memakan waktu jauh lebih sedikit.
Saya juga belum menemukan waktu ekstra yang diperlukan untuk menyelamatkan beban. Cukup cepat, IMO.
sumber
Gelandangan tidak pulang pergi sudo melalui SSH, ia menggunakan subkulit . Lihat manual: https://www.gnu.org/software/tramp/#Inline-methods
Karena itu, saya sarankan Anda tetap menggunakan TRAMP.
sumber
Jika Anda menggunakan
helm
,helm-find-files
mendukung membuka file sebagai root denganC-c r
.sumber
M-x helm-find-files C-c ?
yang memberi tahu cara kembali ke mode pembukaan normal sebagai pengguna. MelakukanC-c r
lagi tidak menghentikannya.sudo -k
dan kemudian meminta kata sandi. Saya memulai kembali Emacs dan itu tidak menghilangkan masalah. Saya menggali.emacs.d
dan menemukan beberapa referensi untuk gelandangan jadi saya menghapusnya. Sekarang sepertinya lebih baik tetapi tidak yakin apakah saya bebas dari itu.Tidak benar-benar jawaban atas pertanyaan awal, tapi inilah fungsi pembantu untuk membuat melakukan rute tramp / sudo sedikit lebih mudah:
sumber
esk-sudo-edit
.Setidaknya untuk menghemat, paket sudo-save ditulis tepat untuk masalah seperti itu.
sumber
Contoh Anda sama sekali tidak memulai ssh, setidaknya tidak dengan versi TRAMP saya ("2.1.13-pre"). Baik find-file dan save-buffer berfungsi dengan baik.
sumber
Saya merekomendasikan Anda untuk menggunakan perintah menasihati. Letakkan fungsi ini di ~ / .emacs Anda
sumber
ido-find-file
untuk menemukan file.(hanya berfungsi secara lokal. Perlu diperbarui untuk berfungsi dengan benar melalui gelandangan)
Sedikit jawaban Burton diperpanjang:
sumber
Ugh. Mungkin Anda bisa membuka shell di Emacs dan exec sudo emacs.
Masalahnya adalah Anda mungkin tidak hanya ingin membuka file. Anda ingin dapat menyimpannya nanti. Dengan demikian Anda memerlukan privat root Anda untuk bertahan, bukan hanya ada untuk membuka file.
Sepertinya Anda ingin Emacs menjadi manajer jendela Anda. Cukup kembung tanpa itu. :)
sumber