假设我想使用su
或在现有的Emacs会话中打开一个文件sudo
,而不是直接转到shell并执行sudoedit
或sudo emacs
.一种方法是
C-x C-f /sudo::/path/to/file
但这需要通过SSH进行昂贵的往返.有更直接的方式吗?
[编辑] @JBB是对的.我希望能够调用su
/ sudo
保存以及打开.在保存时重新授权是可以的(但不是理想的).我正在寻找的是变化find-file
,并save-buffer
认为可能是"管道"通过su
/ sudo
.
Tramp的优点在于,当您打开第一个文件时,您只需为SSH的往返付费.然后Sudo缓存您的凭据,Emacs保存一个句柄,以便后续的sudo打开的文件花费更少的时间.
我还没有找到节省负担所需的额外时间.它足够快,IMO.
流浪汉确实不是往返须藤通过SSH,它使用一个子shell.请参阅手册:https://www.gnu.org/software/tramp/#Inline-methods
因此,我建议您坚持使用TRAMP.
如果使用helm
,helm-find-files
支持以root身份打开文件C-c r
.
这不是原始问题的答案,但是这里有一个辅助函数可以使tramp/sudo路径更容易:
(defun sudo-find-file (file-name) "Like find file, but opens the file as root." (interactive "FSudo Find File: ") (let ((tramp-file-name (concat "/sudo::" (expand-file-name file-name)))) (find-file tramp-file-name)))
至少为了节省,一个sudo-save包就是针对那种问题编写的.