让emacs永远不要打开新的框架

让emacs永远不要打开新的框架,emacs,window,Emacs,Window,如何将emacs设置为从不创建任何新帧。如果我想要帧,我会从emacs内部完成 令人恼火的是,每当我从emacs外部的文件管理器中单击一个文件时,就会打开一个全新的emacs实例,而加载时间也很长 打开一堆文件,每一个都需要5秒钟才能最终加载,这不是很方便。 因此,我想做的是:每当我在文件管理器上单击一个文件时,我希望该文件在一个emacs实例中打开,该实例已经作为一个新的缓冲区运行 我该怎么做 使用Fedora 19上的emacs 24.3.1和Gnome 3.8.4您希望启动一个emacs实

如何将emacs设置为从不创建任何新帧。如果我想要帧,我会从emacs内部完成

令人恼火的是,每当我从emacs外部的文件管理器中单击一个文件时,就会打开一个全新的emacs实例,而加载时间也很长

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

我该怎么做


使用Fedora 19上的emacs 24.3.1和Gnome 3.8.4

您希望启动一个
emacs
实例(应该使用
(服务器启动)
~/.emacs
中启动服务器),然后使用
EmacClient
。你可能应该

  export EDITOR=emacsclient
例如,在您的
~/.bashrc


请参阅(在Emacs文档中)和(在Emacs Wiki中)。

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

  export EDITOR=emacsclient
例如,在您的
~/.bashrc


请参阅(在Emacs文档中)和(在Emacs Wiki中)。

以下是我所做的。我有Ubuntu,但我很确定 侏儒也
/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
(为了完整起见):

在不重新启动的情况下更新这些快捷方式的命令是:

sudo update-desktop-database
现在,在文件管理器的“打开方式”对话框中应该有一个
Emacsclient
条目。 建立关联,只需单击鼠标,文件就会在emacs中打开。 只需确保您的
~/.emacs

(require 'server)
(or (server-running-p) (server-start))

这就是我所做的。我有Ubuntu,但我很确定 侏儒也
/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
(为了完整起见):

在不重新启动的情况下更新这些快捷方式的命令是:

sudo update-desktop-database
现在,在文件管理器的“打开方式”对话框中应该有一个
Emacsclient
条目。 建立关联,只需单击鼠标,文件就会在emacs中打开。 只需确保您的
~/.emacs

(require 'server)
(or (server-running-p) (server-start))

假设Basile Starynkevitch的假设是正确的,那么你的描述就不太正确;实际上,您正在启动多个Emacs实例(每个实例都有一个框架),而不是打开新的框架(这意味着一个实例)。由于每一个都需要约5秒钟才能打开,因此几乎可以肯定这就是正在发生的事情。(如果你愿意,毫无疑问,你也可以在加载后使用
eval
并尽可能自动加载,将启动时间缩短到不超过1秒左右。另请参见)假设Basile Starynkevitch的假设是正确的,那么你的描述就不太正确;实际上,您正在启动多个Emacs实例(每个实例都有一个框架),而不是打开新的框架(这意味着一个实例)。由于每一个都需要约5秒钟才能打开,因此几乎可以肯定这就是正在发生的事情。(如果您愿意,您无疑也可以使用
eval after load
并在可能的情况下自动加载,将启动时间减少到不超过1秒左右。另请参见)好的,我已经在服务器模式下设置了一些东西,但没有任何改进。当我打开一个文件时,不仅会忽略我的.emacs文件(没有自定义加载告诉我这里出了什么问题),我还必须始终右键单击一个文件才能使用emacs客户端而不是emacs客户端打开。即使这样做,我仍然会得到新的帧(我不想要帧!!!我想要新的缓冲区!!!!)顺便说一句:速度无论如何都不会增加。是否有人更了解某事物??确保您的桌面正在启动
emacsclient
(或
$EDITOR
)而不是
emacs
;使用
ps auxw
top
查看您是否有多个
emacs
进程……好的,我知道了。但这并没有改变守护进程模式被破坏,启动文件被忽略。如何处理这些问题??EmacClient不会计算init文件——服务器实例已经这样做了。服务器中加载和评估的所有内容都可供该服务器的每个客户端使用。这就是EmacClient/server安排的全部目的。EmacClient应该重新使用现有的框架,除非您已将
-c
参数传递给它,要求它创建新的框架。好的,我已在服务器模式下设置了一些内容,但没有任何改进。当我打开一个文件时,不仅会忽略我的.emacs文件(没有自定义加载告诉我这里出了什么问题),我还必须始终右键单击一个文件才能使用emacs客户端而不是emacs客户端打开。即使这样做,我仍然会得到新的帧(我不想要帧!!!我想要新的缓冲区!!!!)顺便说一句:速度无论如何都不会增加。是否有人更了解某事物??确保您的桌面正在启动
emacsclient
(或
$EDITOR
)而不是
emacs
;使用
ps auxw
top
查看您是否有多个
emacs
进程……好的,我知道了。但这并没有改变守护进程模式被破坏,启动文件被忽略。如何处理这些问题??EmacClient不会计算init文件——服务器实例已经这样做了。服务器中加载和评估的所有内容都可供该服务器的每个客户端使用。这是EmacClient/server安排的全部目的。EmacClient应重复使用现有框架,除非您已将
-c
参数传递给它以要求它创建新框架。