如何将补丁应用于Emacs(真彩色支持)

时间:2016-06-30 17:58:54

标签: emacs gnome-terminal

这是 NOT 重复。

我想在支持真彩色的终端(在这种情况下是GNOME终端)中使用Emacs中的真彩色。我见过很多关于diff文件的链接,但它们没有提供有关如何应用diff的任何说明。

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

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

1 个答案:

答案 0 :(得分:1)

  • 下载Emacs 24.4的源代码(这是该补丁所说的版本)。此链接会将您重定向到附近的镜像,您可以从中下载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应用差异。这是一个棘手的问题:我们必须检查补丁,看看需要删除多少个路径组件。第一个大块头的标题是:

    *** ./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