Personal tools
You are here: Home ブログ matsuyama Gentoo で Emacs 23 を使う
Document Actions

Gentoo で Emacs 23 を使う

emacs-xft.png

現在、作業は全て 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 します。これについては暇なときに調査。

Category(s)
linux
emacs
The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/matsuyama/gentoo-emacs-23/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.