186 votes

Ouvrir un fichier avec su/sudo dans Emacs

Supposons que je veux ouvrir un fichier dans un Emacs session à l'aide de su ou sudo, sans tomber vers le bas à un shell et faire sudoedit ou sudo emacs. Une façon de le faire est

(require 'tramp)
C-x C-f /sudo::/path/to/file

mais cela nécessite un coûteux voyage aller-retour à travers SSH. Est-il un moyen plus direct?

[EDIT] @JBB est droit. Je veux être en mesure d'invoquer su/sudo d'enregistrer et d'ouvrir. Il serait bien (mais c'est pas l'idéal) d'autoriser à nouveau lors de l'enregistrement. Ce que je suis à la recherche pour les différences de find-file et save-buffer qui peut être "canalisée" par le biais su/sudo.

70voto

EfForEffort Points 54278

La chose gentille au sujet de clochard, c’est que vous ne payez qu’aller-retour sur SSH lorsque vous ouvrez le premier fichier. Sudo puis met en cache vos informations d’identification, et Emacs enregistre une poignée, afin que les fichiers de sudo-ouvert suivantes prendre beaucoup moins de temps.

Je n’ai pas trouvé le temps supplémentaire qu’il faut pour sauver accabler, non plus. C' est assez rapide, OMI.

65voto

Teddy Points 3250

Clochard fait pas aller-retour sudo via SSH, il utilise un subshell. Voir le manuel : http://www.gnu.org/software/tramp/#index-method-su-29

Par conséquent, je recommande que vous coller avec clochard.

17voto

Burton Samograd Points 2466

Pas vraiment une réponse à la question initiale, mais ici est une fonction d’assistance pour faire faire la clochard/sudo route un peu plus facile :

 (defun sudo-find-file (nom_fichier) « comme trouver le fichier, mais ouvre le fichier en tant que root. » (interactive « FSudo Find File : «) (laissez ((tramp-file-name (concat "/ sudo ::" (développez-file-name-nom du fichier))) (find-file clochard-file-name))) 

5voto

huitseeker Points 6049

Au moins pour l’économie, un paquet sudo-save a été écrit exactement pour ce genre de problème.

5voto

jfm3 Points 13666

Votre exemple ne démarre pas ssh du tout, du moins pas avec ma version de TRAMP (« 2.1.13-pre »). Les find-file et save-buffer fonctionnent à merveille.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X