.emacs编辑是否始终在终端模式下启动emacs?

.emacs编辑是否始终在终端模式下启动emacs?,emacs,dot-emacs,Emacs,Dot Emacs,我选择使用emacs作为编辑器,因为我在终端上做了很多工作,所以我总是将emacs作为编辑器运行 emacs -nw 因此,它在终端中运行,而不是在窗口中运行 我只想运行emacs,让它知道它应该在终端中运行。我的问题是-如何编辑.emacs文件,使其成为默认行为?您不能在.emacs文件中执行此操作。在解析该文件时,“选定的”emacs二进制文件已经在运行 您可以按照一位评论员的建议安装emacs nox包,或者在shell中创建别名,以便“emacs”始终被视为“emacs-nw” Ran

我选择使用emacs作为编辑器,因为我在终端上做了很多工作,所以我总是将emacs作为编辑器运行

emacs -nw
因此,它在终端中运行,而不是在窗口中运行


我只想运行
emacs
,让它知道它应该在终端中运行。我的问题是-如何编辑
.emacs
文件,使其成为默认行为?

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

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


Randy

我使用的是bash别名而不是.emacs来实现这一点。
将此行添加到~/.bashrc

alias emacs='emacs -nw'

一般来说,有任何简单的方法可以解决与emacs完全无关的问题,并且适用于任何可以在控制台和X中运行的程序:

unset DISPLAY
当然,您可能不希望将其放在配置文件中,以便全局应用于所有shell会话,因此,如果您希望它仅应用于emacs,则可以从命令行调用它,如下所示:

DISPLAY= emacs
#!/bin/bash
unset DISPLAY
exec emacs
注意空格!!!如果不留空格,则表示将显示设置为emacs,而不是将显示设置为nothing。。。此命令是以下命令的简写:

DISPLAY=; emacs
因此,可以从命令行使用上述命令,也可以将其放入如下所示的包装器脚本中:

DISPLAY= emacs
#!/bin/bash
unset DISPLAY
exec emacs
我推荐那里的exec,因为它将用emacs替换包装器脚本;要查看两者之间的差异,可以运行:

pstree -p

当我第一次在windows中为emacs设置“emacs-nw”别名时,我陷入了一种我认为tototoshi的解释不起作用的境地。然而,所需要的只是重新启动我的终端。因此,我认为值得一提的是,在windows中(至少)如果您在git bash终端中使用emacs来创建.bashrc文件并向其中添加“alias emacs='emacs-nw”(正如Totoshi所提到的),您必须关闭并重新打开终端才能使其工作

你在用什么操作系统?许多linux发行版都有一个emacs nox包,或者类似的名称。这是在没有图形支持的情况下编写的,因此将始终在终端中运行。如果这有帮助的话,我使用的是Ubuntu 10.10。有趣的是,在Mac OSX上,emacs对我来说总是意味着emacs-nw。别名建议+1-笛福在这种情况下的做法谢谢详细的回答!我会试试的。免费BSD上的emacs-nox11-*。正是我想要的,谢谢!顺便说一句:我很好奇-如果您在X环境中运行,为什么您总是希望在控制台中运行emacs?带分号的第三个命令与第二个命令不同。如果添加分号,它会在当前shell以及emacs子进程中将DISPLAY设置为空。没有分号,它只适用于emacs。用分号是破坏性的。你为什么要打开十亿个窗口?此外,我所有的编码工作都是在“屏幕”内完成的,这对X来说毫无意义。@aculich