2011-01-05 71 views
15

我使用emacs作为我主编的选择题,既然我做了很多工作,在终端我始终运行的Emacs作为.emacs编辑以始终在终端模式下启动Emacs?

emacs -nw 

,使其在终端,而不是在一个窗口中运行。

我想只要运行emacs,让它知道它应该在终端上运行。我的问题是 - 我如何编辑我的.emacs文件,以便这是默认行为?

+0

你在使用什么操作系统?许多Linux发行版都有一个emacs-nox软件包,或者类似的命名。这是在没有图形支持的情况下编写的,因此将始终运行在终端中。 – KeithB 2011-01-05 20:30:31

+0

我在Ubuntu 10.10上,如果有帮助的话。 – templatetypedef 2011-01-05 20:32:21

+0

有趣的是,在Mac OSX上,emacs对我来说总是意味着emacs-nw。 – 2012-03-23 16:19:38

回答

25

您不能在.emacs文件中执行此操作。在解析文件时,“选择的”emacs二进制文件已经在运行。

您可以按照一位评论者的建议安装emacs-nox软件包,或者在shell中创建一个别名,以便“emacs”始终被视为“emacs -nw”。

兰迪

+1

为别名建议+1 - defo在这种情况下走的路 – cristobalito 2011-01-05 20:40:33

+0

感谢您的详细答案!我会试试看。 – templatetypedef 2011-01-05 20:44:38

+1

emacs-nox,哇。多么好的包装。谢谢先生! – meawoppl 2013-07-30 16:10:29

14

我使用的替代的.emacs一个bash别名做到这一点。
将此行添加到〜/ .bashrc中。

alias emacs='emacs -nw' 
2

有任何简单的方法来解决,在所有无关使用Emacs并为可运行之间在控制台VS X选择任何程序中工作一般问题:

unset DISPLAY 

当然,您可能不希望将它放在您的配置文件中,以便全局应用于所有shell会话,因此如果您希望它仅适用于emacs,那么可以使用如下命令行调用它:

DISPLAY= emacs 

注意空间!如果你离开的空间出来就意味着你的显示设置emacs的,而不是设置DISPLAY不了了之......这个命令是一个简写:

DISPLAY=; emacs 

因此,无论使用上面的命令行(S ),或把在一个包装脚本,将是这个样子:

#!/bin/bash 
unset DISPLAY 
exec emacs 

我推荐的高管那里,因为它会与emacs的更换你的包裹脚本;看到这两者之间的区别,你可以运行:

pstree -p 
+1

btw:我很好奇 - 你为什么要在操作系统中运行emacs? – aculich 2011-01-13 13:46:19

+0

带分号的第三个命令与第二个命令不同*。如果添加分号,它会在当前shell以及emacs子进程中将DISPLAY设置为空。没有分号只适用于emacs。用分号表示它具有破坏性。 – Thomas 2016-09-30 09:50:26

+0

为什么你想要打开十亿个窗口?此外,我还会在“屏幕”内执行所有编码工作,这与X无关。@aculich – Thomas 2016-09-30 09:51:44

1

当我第一次设立了一个emacs的“的emacs -nw”的别名在windows我被困在我以为tototoshi的解释没有工作的情况。然而,所有这一切都需要重启我的终端。因此,我认为值得一提的是,如果您在git bash终端中使用emacs创建.bashrc文件并在其中添加“别名emacs ='emacs -nw”(如tototoshi提到的),那么在windows(至少)关闭并重新打开您的终端使其工作。

+0

或者我认为键入“term”。有一个命令来做到这一点。 – Thufir 2013-12-08 06:14:41