Gentoo で Emacs 23 を使う
現在、作業は全て urxvt + screen + emacs -nw で行なっているのですが、少し思うところあって Emacs 23 に全て統合してしまおうかと思っています。で、今日はそれの布石としてとりあえず Emacs 23 を入れてみることにします(*)。
(*) Emacs 23 だと Xft が使えるのです
まずは、 Emacs 23 のインストール。
% echo '=app-editors/emacs-cvs-23.0.0-r1' >> /etc/portage/package.unmask % emerge -av '=app-editors/emacs-cvs-23.0.0-r1'
masked パッケージもなんのその、自称人柱松山です(人柱レベルはまだまだ低いですが)。 USE xft は忘れないように。
インストールは正常に終っても、普通に動かないところが unmasked package の素晴しいところ。僕の環境において、今わかっている限りでは emacs-w3m-1.4.4 と mew 4.? が動きませんでした。以下その修正。
emacs-w3m
誰かがすでにやっているようですが、 emacs-w3m の CVS から最新版を拾ってきてインストールする ebuild を書きます。
/usr/portage/app-emacs/emacs-w3m-cvs/emacs-w3m-cvs-1.4.5.ebuild:
# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit elisp cvs ECVS_SERVER="cvs.namazu.org:/storage/cvsroot" ECVS_MODULE="emacs-w3m" ECVS_BRANCH="HEAD" IUSE="" S="${WORKDIR}/${ECVS_MODULE}" DESCRIPTION="emacs-w3m is an interface program of w3m on Emacs." HOMEPAGE="http://emacs-w3m.namazu.org" SRC_URI="" LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86" DEPEND="!app-emacs/emacs-w3m virtual/w3m sys-devel/autoconf" pkg_setup() { if has_version www-client/w3m; then if built_with_use www-client/w3m async; then eerror "emacs-w3m hangs if you build w3m with async support." die "re-emerge www-client/w3m with USE=\"-async\"" fi fi } src_compile() { autoconf || die ./configure --prefix=/usr \ --with-lispdir=${SITELISP}/${ECVS_MODULE} \ --with-icondir=/usr/share/${ECVS_MODULE}/icon make || die } src_install () { make lispdir=${D}/${SITELISP}/${ECVS_MODULE} \ infodir=${D}/usr/share/info \ ICONDIR=${D}/usr/share/${ECVS_MODULE}/icon \ install || die make lispdir=${D}/${SITELISP}/${ECVS_MODULE} \ ICONDIR=${D}/usr/share/${ECVS_MODULE}/icon \ install-icons || die #elisp-site-file-install ${FILESDIR}/70emacs-w3m-gentoo.el dodoc ChangeLog* README* } pkg_postinst() { elisp-site-regen einfo "Please see /usr/share/doc/${P}/README.gz." einfo elog "If you want to use shimbun library, please emerge app-emacs/apel and app-emacs/flim." einfo } pkg_postrm() { elisp-site-regen }
digest を作ってから emerge 。
% cd /usr/portage/app-emacs/emacs-w3m-cvs/ % ebuild emacs-w3m-cvs-1.4.5.ebuild digest % ACCEPT_KEYWORDS="~amd64 ~x86" emerge -av emacs-w3m-cvs
これで動くはず。
mew
一応最新を入れておきます。
% echo 'app-emacs/mew' >> /etc/portage/package.keyword % emerge -av app-emacs/mew
それで emacs -f mew とすると、 mew-thread-indent-strings の各要素の string-width が一致しないというエラーが出ると思うので、以下のように対処。
/usr/share/emacs/site-lisp/mew/mew-lang-jp.el.patch:
-(defvar mew-thread-indent-strings ["┣" "┗" "┃" " "]) +;(defvar mew-thread-indent-strings ["┣" "┗" "┃" " "])
ちなみに 4 番目の要素だけ string-width が 2 になるようです。どういう仕様かさっぱり知らないので単にコメントアウトするという雑な仕様に(コメントアウトするとアルファベットの mew-thread-indent-strings が使われます)。
一応これでよく使うアプリケーションは正しく動作するようになりましたが(もちろんバグバグですが)、まだ実際の開発に使ったわけではないので、どれぐらい問題が隠されているかは今のところ未知数です。とりあえず使ってみて問題が出次第、対策を打ってここにも追記していきたいと思います。
ちなみに Emacs 23 から対応する予定の Xft は以下のようにすると簡単に使うことができます。
% emacs --enable-font-backend --font "Bitstream Vera Sans Mon-14"
あるいは
~/.Xdefaults:
Emacs.font: Bitstream Vera Sans Mono-14
% emacs --enable-font-backend
あるいは
~/.emacs:
(set-default-font "Bitstream Vera Sans Mono-14")
% emacs --enable-font-backend
--enable-font-backend をいちいち打つのは面倒くさいので、
~/.zsh:
alias emacs="/usr/bin/emacs --enable-font-backend"
とでもしておきましょう。
備考
M+ フォントを Xft で読みこむと Emacs が SEGV します。これについては暇なときに調査。
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/matsuyama/gentoo-emacs-23/tbping