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

我想实现什么

  • 一个emacs实例
  • 如果我从鹦鹉螺打开任何文本文件,它应该在当前的emacs实例中打开
  • 如果我closuresemacs,它不应该真的closures它,只是隐藏它

我目前有什么

  • 我设置emacs23启动时启动
  • 我有(启动服务器)在我的初始化
  • 我离开emacs打开
  • 我有emacsclient作为默认的texteditor

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

  • emacs给出了以下错误,如果我退出emacs并尝试再次启动它

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

我试过的东西

  • emacs wiki

  • 堆栈溢出

  • emacs fu

更新:我再次与stackoverflow链接,现在大部分工作。 不过,我希望能够做的是重新加载init文件,以便我可以在不重新启动计算机的情况下更改我的init文件。 有任何想法吗?

此外,如果服务器正在运行,并且我有emacs false-closed(请参阅emacs fu链接),如何在不加载文件的情况下再次启动它? 例如,运行emacs23的等价物是什么,因为这不起作用(见上面写的错误)

Solutions Collecting From Web of "如何使用emacs的一个实例作为默认的文本编辑器?"

  • .emacs删除(start-server)
  • 使用emacsclient "$@" -a ""来启动emacs,无论它是否在运行

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

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

如果您不希望一个项目的缓冲区与另一个项目的缓冲区混合在一起,也可以在一台机器上运行多个emacs实例。 看到我的帖子在这个问题上。

不过,我希望能够做的是重新加载init文件,以便我可以在不重新启动计算机的情况下更改我的init文件。

通过阅读守护进程背后的方法,你没有看到任何简单的加载你的init文件,并发出编辑后发出eval-buffer调用。

此外,如果服务器正在运行,并且我有emacs false-closed(请参阅emacs fu链接),如何在不加载文件的情况下再次启动它?

运行emacsclient (而不是emacs23 )应该做的伎俩,我想。

嗯,不知道如何运行emacs作为客户端,但我经常修改和应用更改到我的.emacs文件,而不关闭emacs。

简单的编辑文件(在emacs之内或之外,哪个并不重要)。 在Mx加载文件中,emacs会询问你文件的路径和名字,如果是〜/ .emacs,这很容易。

输入路径和文件名然后RET和emacs将重新加载您的更改。 你打开的任何缓冲区仍然在那里。