如何给 Emacs 打补丁(真彩色支持)

How to apply a patch to Emacs (True Color Support)

不是重复的。

我想在支持真彩色的终端(在本例中为 GNOME 终端)中使用 Emacs 中的真彩色。我已经看到许多指向 diff 文件的链接,但它们没有提供任何有关如何应用 diff 的说明。

简单地说,你如何使用这个差异(https://gist.github.com/choppsv1/36aacdd696d505566088)来获得真彩色支持?

请原谅我的菜鸟,我以前从未使用过这些差异文件。

  • 下载 Emacs 24.4 的源代码(这是补丁说明的版本)。此 link 会将您重定向到附近的镜像,您可以从中下载 emacs-24.4.tar.gzhttp://ftpmirror.gnu.org/emacs/
  • 解压缩 tarball,并切换到新目录:

    tar -xzf emacs-24.4.tar.gz
    cd emacs-24.4
    
  • 将差异下载为 emacs-24.4-24bit.diff

  • 应用与 patch 的差异。这是棘手的一点:我们必须检查补丁以查看需要删除多少路径组件。第一个大块头的 header 说:

    *** ./lisp/term/xterm.el.orig   2014-06-20 13:28:33.000000000 -0400
    --- ./lisp/term/xterm.el    2015-02-23 07:01:48.000000000 -0500
    

    所以目标路径是./lisp/term/xterm.el,这正是我们在解压目录中的路径。因此我们删除零路径组件,并将参数 -p0 传递给 patch.

    如果这个补丁是由 git 生成的,它看起来应该是这样的,a 目录指的是旧版本,b 目录指的是新版本版本:

    *** a/lisp/term/xterm.el.orig   2014-06-20 13:28:33.000000000 -0400
    --- b/lisp/term/xterm.el    2015-02-23 07:01:48.000000000 -0500
    

    在那种情况下,我们需要删除一个路径组件才能应用补丁(因为没有实际的 b 子目录),我们将使用参数 -p1.

    请注意,使用patch最方便的方法是使用<将补丁文件重定向到它。所以我们最终得到这个命令行:

    patch -p0 < emacs-24.4-24bit.diff
    

    检查输出,确保补丁应用正确。在这种情况下应该没有任何问题,因为我们在完全相同的版本上应用补丁,但你永远不知道。

  • 安装编译 Emacs 所需的任何工具。在 Debian 和 Ubuntu 中,您可以使用 apt-get build-dep:

    sudo apt-get build-dep emacs24
    

    其他发行版将有其他方式来做到这一点。您需要 C 编译器、GTK+ 开发包和 Emacs 依赖的其他库。

  • 配置 Emacs。默认设置应该没问题;他们将在 /usr/local:

    安装你的新 Emacs
    ./configure
    
  • 编译 Emacs:

    make
    
  • 安装 Emacs:

    sudo make install
    
  • 设置环境变量,如差异中所述,ITERM_24BITKONSOLE_DBUS_SESSION

  • 尝试运行:

    /usr/local/bin/emacs