Emacsclient 文件提到模擬 Gnuclient。有什麼關係?
在 GNU Emacs GUI 中打開文件時,我使用
gnuserv
附加到已經執行的 emacs。我使用“gnuserv”只是因為我閱讀的關於該主題的第一個文件建議了它。今天我正在尋找一種在特定行號處打開文件的方法,並找到了使用emacsclient -c +4:3 FILE的參考…當我執行該命令時,它抱怨需要啟動伺服器.. .
gnuserv
正在執行,所以 gnuserv 和 emacsclient 顯然不是互補的組件。這兩個客戶端-伺服器系統之間的關係是什麼?
例如。它們可以共存嗎?…還有一個“最新的”嗎?…一個僅用於終端嗎?.. 他們執行類似的功能嗎?
有一段時間,Emacs 有兩個主要的實現:GNU Emacs和XEmacs。XEmacs 通常具有更多功能,而 GNU Emacs 正在迎頭趕上,但提供了更精緻的產品¹。XEmacs 在過去的幾年裡沒有任何重大的發展;我認為 GNU Emacs 23 已經趕上了 XEmacs 21(最後一個版本)的所有主要特性。
GNU Emacs 和 XEmacs 不同之處在於 emacsclient/gnuclient。在 GNU Emacs 22 之前,emacsclient 只能在現有 Emacs 中打開文件,而 gnuclient 可以在遠端 Emacs 程序中執行任意程式碼。從 GNU Emacs 23 開始,emacsclient 和 gnuclient 具有相似的功能。
gnuclient/gnuserv 和 emacsclient/emacsserver 使用的協議是不同的。所以你需要選擇一個並堅持下去。(應該可以在您的 Emacs 實例中同時執行 gnuserv 和 emacsserver;這可能需要對 Lisp 進行一些小的調整以避免名稱衝突)。
當emacsclient只支持打開文件時,我曾經在任何可用的地方使用gnuserv/gnuclient,但是從Emacs 23開始,我使用帶有emacsclient的內置伺服器。
¹我不會在這裡討論的項目之間存在其他政治分歧。