如何给 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.gz
:http://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_24BIT
或KONSOLE_DBUS_SESSION
。
尝试运行:
/usr/local/bin/emacs
这不是重复的。
我想在支持真彩色的终端(在本例中为 GNOME 终端)中使用 Emacs 中的真彩色。我已经看到许多指向 diff 文件的链接,但它们没有提供任何有关如何应用 diff 的说明。
简单地说,你如何使用这个差异(https://gist.github.com/choppsv1/36aacdd696d505566088)来获得真彩色支持?
请原谅我的菜鸟,我以前从未使用过这些差异文件。
- 下载 Emacs 24.4 的源代码(这是补丁说明的版本)。此 link 会将您重定向到附近的镜像,您可以从中下载
emacs-24.4.tar.gz
:http://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。默认设置应该没问题;他们将在
安装你的新 Emacs/usr/local
:./configure
编译 Emacs:
make
安装 Emacs:
sudo make install
设置环境变量,如差异中所述,
ITERM_24BIT
或KONSOLE_DBUS_SESSION
。尝试运行:
/usr/local/bin/emacs