如何使用emacs的一个实例作为默认文本编辑器? [Linux的]

时间:2010-12-16 08:37:19

标签: linux emacs ubuntu

我想要实现的目标

  • emacs的一个实例
  • 如果我从nautilus打开任何文本文件,它应该在当前的emacs实例中打开
  • 如果我关闭emacs,它不应该真正关闭它,只是隐藏它

我目前有什么

  • 我将emacs23设置为启动时启动
  • 我在初始化
  • 中有(start-server)
  • 我打开emacs
  • 我将emacsclient作为默认的texteditor

尝试实现我想要的时遇到的问题

    如果我退出emacs并尝试重新启动,则
  • emacs会出现以下错误
  

文件错误:无法绑定服务器套接字,已在使用的地址

我尝试过的事情

更新:我再次尝试使用stackoverflow链接,现在大部分都在工作。 但是,我希望能够重新加载init文件,以便我可以在不重新启动计算机的情况下更改init文件。有什么想法吗?

此外,如果服务器正在运行并且我有emacs假关闭(请参阅emacs fu链接),如何在不加载文件的情况下重新启动它?例如,运行emacs23相当于什么,因为这不起作用(参见上面的错误)

4 个答案:

答案 0 :(得分:21)

  • (start-server)
  • 中移除.emacs
  • 使用emacsclient "$@" -a ""启动emacs是否正在运行

如果您将emacsclient "$@" -a ""保存为脚本,例如在editor文件中,editor -c创建一个新框架,editor -t在终端中打开新框架,并在现有框架中editor FILE访问FILE。如果它没有运行,它会启动emacs服务器。

答案 1 :(得分:3)

我使用emacs --daemon启动emacs,以便emacs以守护程序模式启动。然后我将EDITOR设置为emacsclient -t -a emacs -nw,这将打开一个附加到emacs守护程序的新终端emacs框架,如果没有运行emacs服务器,则使用emacs的“无窗口”版本作为替代。要在GUI中打开emacs窗口,编辑器命令为emacsclient -n -c -a emacs

如果您不希望将来自一个项目的缓冲区与来自另一个项目的缓冲区混合,也可以在一台计算机上运行多个emacs实例。请参阅我的my post主题。

答案 2 :(得分:1)

  

然而,我想成为一样的人   能做的是重新加载init文件,   这样我就可以对我的init进行更改   文件没有重新启动计算机。

阅读您正在寻找的守护进程效果背后的方法,它们似乎都没有阻止只是加载您的init文件并在编辑后发出eval-buffer调用。

  

此外,如果服务器正在运行,我   将emacs假封闭(请参阅emacs fu   链接),我怎么能再次启动它   没有加载文件?

我认为,运行emacsclient(而不是emacs23)应该可以解决问题。

答案 3 :(得分:1)

嗯,不确定将emacs作为客户端运行,但我经常修改并将更改应用到我的.emacs文件,而不关闭emacs。

简单编辑文件(在emacs内部或外部,它并不重要)。 M-x加载文件,emacs将询问您文件的路径和名称,如果它是〜/ .emacs则很容易。

键入路径和文件名然后RET,emacs将根据您的更改重新加载。你打开的任何缓冲区仍然存在。