[英]How to make Emacs 'man' work over Tramp?
我有一個關於在Emacs中使用Mx man的問題。 我一直在使用Tramp,而且遠程服務器上安裝的程序通常與我的本地設置有很大不同。 我看到調用Mx man涉及在本地機器上查找相關聯機幫助頁。 有沒有辦法指示它使用Tramp另一邊的環境?
我知道有一個Elisp變量tramp-remote-process-environment
我嘗試為它添加一個MANPATH
條目,但它似乎不起作用(我擔心這是因為我把它放在/usr/share/man
表格中) /usr/share/man
而不是/scpc:user@host:/usr/share/man
但我想要的是一個適用於所有遠程主機的通用解決方案。 有任何想法嗎?
來自man.el
的Man-start-calling
宏:
(let (...
(default-directory
(if (and (file-directory-p default-directory)
(not (find-file-name-handler default-directory
'file-directory-p)))
default-directory
"/"))
也就是說,如果當前默認目錄(如Tramp)有一個特殊的文件名處理程序,它將使用根目錄作為啟動man
的目錄,因此它將看到系統上運行Emacs的手冊頁。
除了改變man.el
之外,似乎沒有辦法禁用它。 請注意,這是一個宏,因此您需要重新加載宏以及使用該宏的所有函數。
從docstring命令man會期望它能夠讀取遠程頁面:
也可以給出顯式文件名。 如果它可能看起來像頁面名稱,請使用-l。
/my/file/name.1.gz
-l somefile.1
您可以編寫一個調用者,它讀取環境並組成所需的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.