让emacs永远不会打开新实例

问题描述 投票:0回答:2

如何将 emacs 设置为从不创建任何新框架。如果我想要框架,我会从 emacs 内部进行。

令人烦恼的是,每当我从 emacs 外部的文件管理器中单击文件时,都会打开一个全新的 emacs 实例,并且加载时间也会随之延长。

打开一堆文件,每个文件都要花 5 秒才能加载,不太方便。 所以我想做的是:每当我单击文件管理器上的一个文件时,我希望在已经作为新缓冲区运行的 emacs 一个实例中打开该文件。

我该怎么做?

在 Fedora 19 上使用 emacs 24.3.1 和 Gnome 3.8.4

emacs window
2个回答
3
投票

您想要启动

emacs
的一个实例(应使用
(server-start)
中的
~/.emacs
启动服务器),然后使用
emacsclient
。你可能应该

  export EDITOR=emacsclient

例如你的

~/.bashrc

请参阅 调用 emacsclient(在 Emacs 文档中)和 EmacsClient(在 Emacs Wiki 中)。


2
投票

这就是我所做的。我有 Ubuntu,但我很确定 Gnome 也使用

/usr/share/applications/

这是我的

/usr/local/share/applications/emacsclient.desktop

[Desktop Entry]
Name=Emacsclient
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/local/bin/emacsclient %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=Emacs

这是我的

/usr/local/share/applications/emacs.desktop
(只是为了完整性):

[Desktop Entry]
Name=Emacs
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=emacs %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=Emacs

无需重新启动即可更新这些快捷方式的命令是:

sudo update-desktop-database

现在您的文件管理器“打开方式”对话框中应该有一个

Emacsclient
条目。 建立关联后,只需单击鼠标即可在 emacs 中打开文件。 只需确保您的
~/.emacs
:

(require 'server)
(or (server-running-p) (server-start))
© www.soinside.com 2019 - 2024. All rights reserved.