【问题标题】:Run emacs as separate process from terminal将 emacs 作为与终端分开的进程运行
【发布时间】:2013-08-01 01:56:55
【问题描述】:

当我运行 emacs 文本编辑器时,进程没有返回,所以我不能使用终端,这显然是默认行为。

我在man 中找不到开关或命令,但我知道这很简单。

如何将emacs 作为一个单独的进程运行,这样我就可以继续使用终端而无需打开第二个终端?

【问题讨论】:

  • 在后台运行它:emacs &
  • 另外,找emacsclient 一个就够了,不要运行很多emacsen。

标签: linux bash unix emacs terminal


【解决方案1】:

您可以通过在命令emacs & 后面附加一个& 符号来在后台启动任何程序。

有一个用于处理后台进程的完整框架,例如参见man jobsdisownfgbg,并在正在运行的进程上尝试Ctrl-Z,这将暂停它并为您提供终端,让您可以随意在前台或后台恢复该过程。通常当你的 shell 关闭时,所有这些程序都会结束,disown 允许你告诉一个程序在你结束会话后继续运行。

【讨论】:

    【解决方案2】:

    emacs --help 命令给你一个提示:

       --batch             do not do interactive display; implies -q
    

    所以运行emacs --batch(或者可能是emacs --executesomecommand)。

    如果您有桌面(或某些 X11 显示器)并希望 emacs 打开 X11 窗口并返回 shell 提示符,请在后台运行它(例如 emacs &),正如许多评论的那样。

    我发现在 emacs 中启动程序(或 shell)非常有用,例如使用 Emacs 命令:M-x shell,或M-x compile(用于make 等...),或M-x gdb 用于调试器。

    您通常在工作日开始时启动一个emacs。您可以将emacsclient (或将您的EDITOR 环境变量设置为它)用于使用相同emacs 的其他版本。

    【讨论】:

      【解决方案3】:

      我想补充一点,Windows 确实有一个等效于 *nix 的 & 用于在单独的进程中启动程序:

      start /b emacs Main.hs
      

      【讨论】:

        猜你喜欢
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-02
        • 1970-01-01
        • 1970-01-01
        • 2013-06-26
        • 2015-06-08
        相关资源
        最近更新 更多