.emacs 编辑以始终在终端模式下启动 Emacs?
Posted
技术标签:
【中文标题】.emacs 编辑以始终在终端模式下启动 Emacs?【英文标题】:.emacs Edit to Always Start Emacs in Terminal Mode? 【发布时间】:2011-01-05 20:24:40 【问题描述】:我使用 emacs 作为我的首选编辑器,由于我在终端中做很多工作,所以我总是将 emacs 运行为
emacs -nw
使其在终端而不是窗口中运行。
我只想运行emacs
并让它知道它应该在终端中运行。我的问题是 - 我如何编辑我的 .emacs
文件以使其成为默认行为?
【问题讨论】:
您使用的是什么操作系统?许多 linux 发行版都有一个 emacs-nox 包,或类似名称的东西。这是在没有图形支持的情况下编译的,因此将始终在终端中运行。 我在 Ubuntu 10.10 上,如果有帮助的话。 有趣的是,在 Mac OSX 上,emacs 对我来说总是意味着 emacs -nw。 【参考方案1】:您不能在 .emacs
文件中执行此操作。在解析该文件时,“选择的”emacs 二进制文件已经在运行。
您可以按照一位评论者的建议安装 emacs-nox
软件包,或者在您的 shell 中创建一个别名,以便始终将“emacs”视为“emacs -nw”。
兰迪
【讨论】:
+1 用于别名建议 - 在这种情况下要走的路 感谢您的详细解答!我会试试看。 emacs-nox11-* 在 FreeBSD 上。正是我想要的,谢谢!【参考方案2】:我正在使用 bash 别名而不是 .emacs 来执行此操作。 将此行添加到您的 ~/.bashrc。
alias emacs='emacs -nw'
【讨论】:
【参考方案3】:一般来说,有任何简单的方法可以解决与 emacs 完全无关的问题,并且适用于任何可以在控制台和 X 中选择运行的程序:
unset DISPLAY
当然,您可能不希望将其放在配置文件中以全局应用于所有 shell 会话,因此如果您希望它仅应用于 emacs,则可以从命令行调用它,如下所示:
DISPLAY= emacs
注意空格!!!如果您将空格留出,则意味着您将 DISPLAY 设置为 emacs 而不是将 DISPLAY 设置为空...此命令是以下命令的简写:
DISPLAY=; emacs
因此,要么从命令行使用上述内容,要么将其放入看起来像这样的包装脚本中:
#!/bin/bash
unset DISPLAY
exec emacs
我推荐那里的 exec,因为它会用 emacs 替换你的包装脚本;要查看两者之间的区别,您可以运行:
pstree -p
【讨论】:
btw:我很好奇——如果你在 X 环境中运行,为什么你总是想在控制台中运行 emacs? 第三个带分号的命令与第二个命令不相同。如果添加分号,它将在当前 shell 以及 emacs 子进程中将 DISPLAY 设置为空。如果没有分号,它仅适用于 emacs。使用分号是破坏性的。 为什么要打开十亿个窗口?此外,我在“屏幕”内完成所有编码工作,这对 X 没有意义。@aculich【参考方案4】:当我第一次在 Windows 中为 emacs 设置“emacs -nw”别名时,我陷入了一种我认为 tototoshi 的解释不起作用的情况。然而,所需要的只是重新启动我的终端。因此,我认为值得一提的是,在 Windows 中(至少)如果您在 git bash 终端中使用 emacs 来创建 .bashrc 文件并向其中添加“alias emacs='emacs -nw”(正如 tototoshi 提到的那样),您有关闭并重新打开您的终端以使其正常工作。
【讨论】:
以上是关于.emacs 编辑以始终在终端模式下启动 Emacs?的主要内容,如果未能解决你的问题,请参考以下文章