[emacsen 目次] [Emacs21 on X] [XEmacs on X]

Emacs21 on jfbterm

最近、手元の Sony Vaio PCG-SR9C/K + Debian sid kernel-2.4.17 なマシンで、 1024x768 なモードで Fremebuffer を利用し jfbterm を起動、その中で Emacs21 を立ち上げると、コンソール上でも、メールを読み書きしたり、 普段のちょっとした作業をするのには、十分すぎる環境が出来ることがわかり、一人喜んでいます。^^;

"そんなこと前から知ってた"って方なら、このページには、 お求めの情報はないだろうと思います。^^;
wl-demo on emacs21 jfbterm
Wanderlust の起動画面

通常のコンソール(Framebuffer でない)では、画面に表示出来る文字数、行数、列数、フォントの問題、等から、 ちょっとした入力も、あまり気の乗らない作業になりがち(*1)ですが、 1024x768 なコンソール上の、jfbterm + Emacs21 ではそうではありませんでした。

まず、この PC (Vaio PCG-SR9C/K)の Video Card は Savage/IX というものですが、 Framebuffer を利用するために、Kernel の を再構築しています。 configure の時に関連しそうなオプションは、このページの に付けておきます。

無事カーネルの再構築が終れば、LILO で起動している場合は、 /etc/lilo.conf に video mode を記述するのですが、lilo.conf に 書いてしまう前に、boot: プロンプトにオプションを渡してみて、う まく行くかどうか確かめるのが良いでしょう。

mode はいくつかあるのですが、私の場合、最初は、"ちょっと字が小さいな" とも思ったのですが、 いろいろと試してみて、やはり 1024x768 が一番使い良さそうだったので、lilo.conf には、 の 32bpp(16M)な vga=792 と書いています。 (cf. man lilo.conf and links

おなじ 1024x768 で、8bpp (256色) の vga=773 や 16bpp(64k 色) の 791 も試したのですが、 791 と、792 では、私の環境では、さほど差は無いようでした。もし、出せるのなら、 773 よりは 791 の方が、さらに 792 の方が、もっと使い易いだろうと思います。 (漢字変換時の文節 region の色が多少判り易くでるような気が、、気のせい??)

jfbterm は、お世辞にも "早い" とは言えないので、最終的にどのモードで使うかは、 ご利用のマシンの CPU や memory とか、video カードの能力とかとの兼ね合いでしょう。

booting penguin ^^;

jfbterm と Emacs21、Wanderlust は、お使いのディストリビューションのパッケージがあれば、 それをご利用になるのが良いでしょう。 もしそれらが無い、あるいは、最新版を使いたい、というような場合は、ディストリビューションの ソースパッケージを探し、リビルドするか、それも無ければ、tar.gz なソースアーカイブを頂いて来て、 展開、コンパイルする等になるでしょう。

パッケージ附属のドキュメント読みが一仕事ですよね。私の場合、これやっとかないと(やっといても) どうせはまるし、、^^;

今まで、コンンソール上の emacsen で、あまりきれいだと思った事はなかったのですが、Emacs21 だと、 結構きれいです。

という事で、Wanderlust + Emacs21 on jfbterm の画像です。^^;

Wanderlust with Emacs21 on jfbterm

jfbterm 上の emacsen で、User-Agent の Flim のエージェント名 (Unebigoryòmae) の ò が、表示出来ず、しばらく悩んだのですが、 emacs21.2 あたりの途中まで(?)なら .emacs で、(<-- obsolate --)

(cond ((>= emacs-major-version 21)
       (if (not (string-match "jfbterm" (getenv "TERM")))
           (set-terminal-coding-system 'euc-japan-unix)
         (set-terminal-coding-system 'compound-text-unix)
        [...]
      ))
	

(-- obsolate -->) とかしておくと、ちゃんと表示されます。(情報によると emacs 20 でも使えるようです)

emacs 21.2 以降(どのあたりからかは良く分かりません _o_), 少な くとも現在手元にある Emacs 21.3 + jfbterm 0.4.6 では、これではだめで、 iso-2022-jp-2-unix などにしておく方が良いようです。

現在 Emacs 21.3 で使っている .emacs の該当部分は、screen を使っている場合にも効くように
(cond ((>= emacs-major-version 21)
       (if (not (or
		 (string-match "jfbterm" (getenv "TERM"))
		 (string-match "screen" (getenv "TERM"))))
	   (set-terminal-coding-system 'euc-japan-unix)
;	 (set-terminal-coding-system 'compound-text-unix))
	 (set-terminal-coding-system 'iso-2022-jp-2-unix))
       (blink-cursor-mode nil)
       (define-key global-map [home] 'begining-of-buffer)
       (define-key global-map [end] 'end-of-buffer))
      (set-language-environment "Japanese")
      (set-default-coding-systems 'iso-2022-jp-2-unix)
;      (set-default-coding-systems 'euc-japan-unix)
;      (prefer-coding-system 'iso-2022-jp-unix)
      (set-buffer-file-coding-system 'iso-2022-jp-2-unix)
;      (set-buffer-file-coding-system 'euc-japan-unix)
      (set-buffer-process-coding-system 'euc-japan-unix)
;      (set-buffer-process-coding-system 'iso-2022-jp-2-unix)
      (set-keyboard-coding-system 'euc-japan-unix)
      )
	
と、軒並 iso-2022-jp-2 にしてますが、日本語ファイル名も読めま すし、問題はないようです。

ただ、この書き方だと、Xのターミナル上でスクリーンを動かし、 その上で Emacs を走らせた場合を考慮してませんので、 その場合にはまずいかも知れません。(_o_)

手元の XEmacs21.4.6 だと、compound-text-unix でなく、 ctext-unix と指定するようですが、現在 XEmacs21.4.15 ではなんか ctext にしないでも表示できるようですねぇ...

jfbterm 以外の場合、例えば、X 上で、krxvt 等(?)から emacs -nw した時、kon 上、 あるいは素のコンソール上等の場合に、(set-terminal-coding-system 'compound-text-unix) だと、 悲惨な状況 (*2) になりますが、上の設定で、ほぼ逃げられると思います。

なんかの拍子に、compound-text-unix な環境から抜けたいような時は、 C-x RET t して、terminal-coding-systemeuc-japan-unix 等にしてやると、 User-Agent の アクサン文字が " ? "で置き換えられる程度で、問題なく使えます。

普段、linux のコンソール上で作業していて、日本語も、アクサン付き文字も両方、 multilingual な環境で使いたいような環境の方には、 現状、jfbterm + Emacs21 が、ベストの環境なのではないかと思います。

ちなみに、アクサン文字 (accentuated text)を入力したい時には、 set-input-method (C-x C-m C-\)で、切替えられます。mini-buffer に入力を促されても、 何を書いて良いか良く判らない時は、SPACE か TAB で補完されますので、 日本語を選択したい場合は、japanese[space]、フランス語の場合は、french[space] で一覧が出ます。 なにも書かずにただ SPACE か TAB を押すと、leim/quail で使えるのが全部出てきます。^^;

html を編集する時もこんなにカラフル。^^;

html edit with Emacs21 on jfbterm

見辛いと思いますが、上の画像の左上は w3m で、書いている html をブラウズして、右上は、M-x eshell しています。下半分が、html モードで、"これ"を編集している所です。

画面は、C-x 2 で上下に分割し、C-x 3 で左右に分割しています。各画面へは、C-x o で移動しています。

jfbterm 上で、debconf とかのダイアログが出ると、一部文字が化ける(罫線フォント?)事があるようですが、 操作出来無いとか読めないで困るような事態には、幸いな事に、まだ遭遇していません。^^; (罫線については私の設定の問題かもしれません)
また、いたずら心から、M-x eshell した中で、 さらに xemacs を起動させてみようと試しましたが、 変な文字が沢山流れて、さすがに駄目でした。^^; そういう用途(どういう用途??)だと、Emacs を "C-x C-z" でバックグラウンドに 回し、fg [RET] で再開とか、 screen を使ういうのが、多分正解(?)ではないのかな、と思います。

この文書を書いている環境は次のようです。


フレームバッファを使うには

ブート時のコンソールに、"ペンギン" が見えてないとか文字が小さくないといった場合は、 多分、カーネルの再構築、が必要です。 (最近のディストリビューションで、かつ、お使いの Video-card が対応している物だと、 ブートオプションを渡す程度でデフォルトでこれが使えるかもしれません。)

カーネルの再構築時に、私が現在有効にしている、オプションの一部をあげておきます。
手元の /usr/src/kernel-source-2.4.17/.config の結果からの抜粋です。
個人的には、いつも make menuconfig でやってます。make config は、初期に数度やってめげました。^^;
make xconfig も何かと不自由ですし。
CONFIG_FB_VESA と、CONFIG_VIDEO_SELECT を有効にすると、その下のも自動的に有効になるみたいです。
もちろん、これらの他にも、お使いのマシンに合せて、適切なオプションを選択しないと、 起動不能に陥る危険がありますので、config 画面での help や、カーネルソースの Documentation、 JF の文書等をフルに活用し、十分に気を付けてください。
また、LILO や、GRUB など他のブートローダからは、正常に起動できている状態のカーネル (新しいのがこけるかもしれないので)を linux OLD 等として呼出せるようにしておくべきでしょう。
私、いつも失敗して、まともに動くまで、たいてい 4回 くらい連続で作り直しやってます。^^;

/usr/src/kernek-source-2.4.17/Documentation/fb 以下に、ドキュメントがありますので、良く読みましょう。 (ソースのパスは、展開された所に適当に読み換えてください)

また、お使いのヴィデオカードによっては、vesa 以外のドライヴァーを使う必要があるものも、 ここにドキュメントがありますので、しっかり読んでから、カーネル再構築に取り組んでください。

カーネルの再構築についての詳しい情報は、 JF のドキュメンントや、 お使いのディストリビューションのドキュメント、ローカルにインストールされている附属のドキュメント (/usr/share/doc/ 等)を参照して下さい。

カーネルのヴァージョンが違えば、上記は、全く通用しなくなる事も有り得ます。 そのカーネルソースに付属のドキュメント(本当はソースを読むらしい)が、 最も詳しい資料となる事も多いでしょう。

また、ここに嘘は書いていないつもりですが、私はそう詳しいわけではありませので、 間違えている、誤解している、といった可能性は否定出来ません(十分あり得ます ^^;)。 また、情報が古くなり、結果、正しくなくなる事も、十分あり得ますので、一切責任は負えません。 もし、これを読んでトライされる場合は、書籍、MLの過去ログ、 検索エンジン、パッケージに附属の ドキュメント等を駆使して、他のリソースを御自身で十分に調べた上、自己責任でお願いいたします。

kernel-2.4.17 では、pcmcia-cs も主要な物は取り込まれているようで、ノートなマシンであっても、 別途 pcmcia-cs のソースを用意する必要は必ずしも必要という訳ではないようです。 最初、知らずに pcmcia-cs のソースを展開していて、"あれ、、"って思いました。^^; 音を alsa で鳴らすなら、alsa-source-* 等はまだ必要な様です。

もし、この文書の中で、間違った記述を発見された方は、ご指摘頂ければ助かります。_o_


私が一方的によくお世話になっている Links

Framebuffer HOWTO (JF)
Using the Framebuffer... (VGA Modes 一覧がある)
Debian 流 kernel 再構築
Debian 便利ワザ集
JFBTERM/ME のページ
Emacs21 について書かれているページ
Emacs21 (藤原さん)
Emacs (Group tgs さんのページ)
GNU Emacs 本家のページ
w3m のページ(sourceforge.net)
emacs-w3m のページ
Wanderlust

(注)
[back *1]*1 もちろん、そうでない方も多いだろうとは思いますが。^^;
[back *2]*2 この状況(文字化けしている)でファイルを編集すると、 ファイルが壊れる事があるというのを経験しました。^^; (しかも、私 .emacs 壊して、emacs 起動出来なくしちゃった ^^;)

[Emacsen 目次] [Emacs21 on X] [XEmacs on X]

Shinichiro HIDA
Last modified: Tue Oct 26 01:04:13 JST 2004
Valid HTML 1.1!