我想使用emacsclient編輯Mutt中的電子郵件。如何僅在未啓動的情況下啓動emacs服務器?
我說這的.emacs
(server-start)
而在.muttrc裏我加了
set editor="emacsclient -nw %s"
看來他們的工作。 當我啓動第二個Emacs時,它抱怨已經有一臺服務器在運行,所以它會發出錯誤。只有在服務器尚未啓動的情況下,如何確保(server-start)
?
由於
我想使用emacsclient編輯Mutt中的電子郵件。如何僅在未啓動的情況下啓動emacs服務器?
我說這的.emacs
(server-start)
而在.muttrc裏我加了
set editor="emacsclient -nw %s"
看來他們的工作。 當我啓動第二個Emacs時,它抱怨已經有一臺服務器在運行,所以它會發出錯誤。只有在服務器尚未啓動的情況下,如何確保(server-start)
?
由於
Emacs的進程可以自動在一個非常簡單的方式來啓動。只需添加到您的.bashrc/.zshrc /不管
export ALTERNATE_EDITOR=""
現在,當你調用emacsclient -t/-c
服務器將啓動(與emacs --daemon
),如果它尚未運行。
我也覺得這個shell別名方便
alias e='emacsclient -t'
注意,因爲Emacs的23,這是在守護進程模式使用Emacs的首選方式。現在大多已棄用(start-server)
。
經由
emacs --daemon
在任何殼或終端產品總數避免此問題,以便Emacs的在後臺運行。這樣emacsclient
總是很開心,因爲總是有一個Emacs服務器連接到。
這是Emacs,還有一個功能,只在需要時啓動服務器,但我現在還不能完全記得它的名字。我自己很高興地愉快地使用選項。
有點遲到的答案,但這裏是適合我的解決方案。每當我啓動emacsclient時,我都會使用emacsclient -a '' -c
-a ''
告訴emacsclient嘗試連接到現有服務器,如果沒有服務器存在,請啓動它並連接到它。
'-a'''選項很棒。請注意'-c'總是創建一個新的框架。如果通常要在現有的emacs框架中編輯文件,那麼我省略此選項 – 2017-10-22 21:52:18
這是一個不錯的解決方案。 'emacsclient -c'也可以工作,並支持圖形客戶端。但是,如何在現有的emacs框架中打開文件(例如,在另一個終端中)。目前,我有一個名爲'e'的bash腳本,用於檢查第一個參數是否爲'-o'(對於其他參數),如果存在,則運行'emacsclient'而不帶'-c'。有沒有更好的方法,使用別名,你可以覆蓋'-t'並導致現有的框架打開文件? – edam 2012-10-23 14:18:05
感謝您的好回答:) – nXqd 2014-10-28 18:09:35
@edam不確定您是否找到了答案,但聽起來好像您希望-t切換到emacsclient。這有點難以分辨,因爲您的評論似乎模糊了終端中的非圖形化emacs實例與窗口化圖形實例之間的區別。 -t代表前者,-c代表後者。 – Daniel 2015-03-09 17:02:59