簡體   English   中英

如何讓Emacs'man'在Tramp上工作?

[英]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.elMan-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM