我有同样的问题。当我启动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