我有同樣的問題。當我啓動emacs時,它會檢查是否已有服務器。如果這是emacs的第一個實例,它將以服務器模式啓動。 然後,當我查看/編輯文件時,我想連接到服務器。這樣,由於沒有新的emacs實例啓動,文件被快速打開。重用上述@mob的結果,我想出瞭如下工作方案:
(1)的.emacs
我在.emacs
文件下面的代碼片段:
;; start emacs-server if not running
(add-hook 'after-init-hook
(lambda()
(require 'server)
(unless (server-running-p)
(server-start))))
如果這是第一個emacs實例,它以服務器模式啓動。
(2)的.bashrc
#########################
# START: Emacs settings #
#########################
export EDITOR=/home/jabba/Dropbox/home/jabba/bin/emacs_try_client_first
export VIEWER=$EDITOR
alias vi=$EDITOR
alias e=vi # i.e., $EDITOR
alias em=vi # same as above
export TERM="xterm-256color"
#######################
# END: Emacs settings #
#######################
我用VIM爲15年以上,所以當我想編輯一個文件,我自動寫入vi file
。因爲我想切換到emacs,所以我定義了這個別名:)命令「vim」和「emacs」開始一個新的實例。使用別名「vi」,「e」和「em」可以連接到正在運行的emacs實例(即服務器)。如果沒有運行emacs服務器,則會打開一個新實例(在服務器模式下)。
(3)emacs_try_client_first
#!/usr/bin/env bash
function emacs_server_is_running()
{
ps ux | grep "\bemacs\b" | grep -v grep >/dev/null
}
if emacs_server_is_running; then
emacsclient -n "[email protected]" 2>/dev/null &
else
emacs "[email protected]" 2>/dev/null &
fi
它還午夜指揮官,其中F3是視圖工作得很好,F4是編輯。在MC中,如果您想使用emacs,請轉到配置並關閉內部視圖和內部編輯。
編輯:添加了after
宏。編輯#2:畢竟沒有必要。
如果那是真的,那就不復存在了。 – yPhil 2018-03-08 18:35:55
首先,這是真的,否則我就不會提到它。 其次,它仍然是。用'emacsclient --version' 25。3,幫助文本顯示如下:「-a EDITOR,--alternate-editor = EDITOR編輯器,如果服務器沒有運行,則編輯器退回。如果EDITOR是空字符串,請在守護進程模式下啓動Emacs並嘗試再次連接。 – 2018-03-08 19:50:36