如何在没有单独窗口的情况下在终端仿真器中运行“ emacs”?


16

我希望从Vim切换到Emacs,而让我失望的是,Emacs在X上运行时会打开一个单独的窗口。我可以为Emacs取得与在X上不运行时相同的行为吗?也就是说,我希望Emacs在与其触发的终端相同的终端上启动会话。

如果问题不清楚,请告诉我。预先感谢!

Answers:



16

您可能更喜欢将emacs作为启动emacs --daemon,然后emacsclient -t用于编辑文件。这使Emacs保持在后台加载,以便您可以像vi一样使用Emacs。编辑会话将立即启动,通过Cx Cc“退出”将仅关闭当前连接。这是很不错的。


5

尽管您的问题已得到回答,但我敢说这不是任何普通用户使用emacs的方式。与vim不同,emacs通常具有更长的启动时间,并且无论如何都倾向于始终在多个打开的缓冲区中运行。因此,当您想在终端中使用emacs进行操作时,您可以调用emacsclient -nw(假设emacs服务器已启动)。看看如何开始使用EmacsClient了解详情。


2

如果您使用bash,则始终可以将以下内容添加到.bashrc中

别名emacs =“ emacs -nw”

这为我节省了很多键入操作(并且当我忘记键入开关时会诅咒)。


1

结合Dick Kenny和Alberto Zaccagni的上述答案,您将获得以下配置,我将在其中使用.bashrc

alias emacs='emacsclient -nw -c -a ""'

这将尝试连接到运行中的emacs守护程序。如果没有运行,它将启动一个新的,然后使用当前的终端窗口进行连接。

从文档:

-a EDITOR, --alternate-editor=EDITOR
        Editor to fallback to if the server is not running
        If EDITOR is the empty string, start Emacs in daemon
        mode and try connecting again

-nw, -t, --tty      Open a new Emacs frame on the current terminal

-c, --create-frame  Create a new frame instead of trying to 
                    use the current Emacs frame

1
当我尝试使用此命令时,Emacs无法启动,而是给我一个警告,提示没有服务器要连接,然后是大量的值转储并且Emacs无法启动。
Koz Ross
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.