Angenommen, ich möchte eine Datei in einer vorhandenen Emacs-Sitzung mit su
oder öffnen sudo
, ohne in eine Shell zu wechseln und sudoedit
oder auszuführen sudo emacs
. Ein Weg, dies zu tun, ist
C-x C-f /sudo::/path/to/file
Dies erfordert jedoch eine teure Hin- und Rückfahrt durch SSH . Gibt es einen direkteren Weg?
[EDIT] @JBB ist richtig. Ich möchte in der Lage sein, sowohl aufzurufen su
/ sudo
zu speichern als auch zu öffnen. Es wäre in Ordnung (aber nicht ideal), beim Speichern erneut zu autorisieren. Was ich suche, sind Variationen von find-file
und save-buffer
das kann durch su
/ "geleitet" werden sudo
.
emacs
file-permissions
sudo
Chris Conway
quelle
quelle
sudoedit
Erwähnung. Sehr hilfreich.Antworten:
Das Schöne an Tramp ist, dass Sie diese Hin- und Rückfahrt zu SSH nur bezahlen, wenn Sie die erste Datei öffnen. Sudo speichert dann Ihre Anmeldeinformationen zwischen und Emacs speichert ein Handle, sodass nachfolgende, von Sudo geöffnete Dateien viel weniger Zeit in Anspruch nehmen.
Ich habe auch nicht die zusätzliche Zeit gefunden, die benötigt wird, um Belastungen zu sparen. Es ist schnell genug, IMO.
quelle
Tramp fährt Sudo nicht über SSH um, sondern verwendet eine Subshell . Siehe das Handbuch: https://www.gnu.org/software/tramp/#Inline-methods
Daher empfehle ich Ihnen, bei TRAMP zu bleiben.
quelle
Wenn Sie verwenden
helm
,helm-find-files
unterstützt das Öffnen einer Datei als root mitC-c r
.quelle
M-x helm-find-files C-c ?
keine Informationen darüber, wie Sie als Benutzer zum normalen Öffnungsmodus zurückkehren können. WiederholenC-c r
hört nicht auf.sudo -k
und dann zur Eingabe des Passworts aufgefordert. Ich habe Emacs neu gestartet und das Problem wurde dadurch nicht behoben. Ich habe mich umgesehen.emacs.d
und einige Hinweise auf Tramp gefunden, also habe ich diese gelöscht. Jetzt scheint es besser, aber nicht sicher, ob ich davon frei bin.Nicht wirklich eine Antwort auf die ursprüngliche Frage, aber hier ist eine Hilfsfunktion, um die Tramp / Sudo-Route ein bisschen einfacher zu machen:
quelle
esk-sudo-edit
.Zumindest zum Speichern wurde ein sudo-save-Paket genau für diese Art von Problem geschrieben.
quelle
Ihr Beispiel startet ssh überhaupt nicht, zumindest nicht mit meiner Version von TRAMP ("2.1.13-pre"). Sowohl Find-File als auch Save-Buffer funktionieren hervorragend.
quelle
Ich empfehle Ihnen, Beratungsbefehle zu verwenden. Fügen Sie diese Funktion in Ihre ~ / .emacs ein
quelle
ido-find-file
Dateien suchen.(funktioniert nur lokal. Muss aktualisiert werden, um über Tramp korrekt zu funktionieren)
Ein bisschen erweitert Burtons Antwort:
quelle
Pfui. Vielleicht könnten Sie eine Shell in Emacs und Exec Sudo Emacs öffnen.
Das Problem ist, dass Sie vermutlich nicht nur die Datei öffnen möchten. Sie möchten es später speichern können. Daher müssen Ihre Root-Rechte bestehen bleiben und nicht nur zum Öffnen der Datei vorhanden sein.
Klingt so, als ob Sie möchten, dass Emacs Ihr Fenstermanager wird. Ohne das ist es aufgebläht genug. :) :)
quelle