2010年2月 6日

[plamo:30420] Re: rootのemacsの設定は


こじま@コンソールで Emacs は(滅多に)使わない,です.

# frame buffer 等を設定すればいいんだろうけど,デフォルトの画面サイズは
# Emacs には小さすぎるし,,

Linux/Unix 環境の場合,伝統的にさまざまな種類の端末機器に対応する必要が
あったため,$TERM という環境変数に現在使っている端末の種類を登録してお

き,Emacs等のエディタはこの $TERM を見てどういう動作をするかを決めています.

# どういう設定になっているかは echo $TERM すれば分かります.

この $TERM は,X 環境上のターミナルソフトウェアでは大抵 "xterm" (昔は
kterm がメジャーだったけど)という設定になり,linux のコンソールでは
"linux" になります.

そういう前提のもとに ~/.emacs の先頭付近を見ると,

;;; ターミナルモードで使用する場合の表示用文字コードを設定します。
(if (or (equal (getenv "TERM") "dtterm") (equal (getenv "TERM") "xterm") )
;; dtterm, Konsole(xterm) の場合
(set-terminal-coding-system 'euc-japan)
;; その他の端末の場合
(set-terminal-coding-system 'iso-2022-jp))

こういう設定があって,TERM が dtterm か xterm の場合は
set-terminal-coding-system というターミナルに表示する文字コードを示す変
数に euc-japan をセットし,それ以外の場合(= "linux "も含む)は iso-2022-jp
をセットします.

# だから,デフォルトでは Emacs のコンソール表示は iso-2022-jp になっているはず

一方,最近の Plamo の場合,unicon というカーネルレベルの multi-bytpe 表
示機能を使って,コンソールに表示される multi-byte 文字列は euc-jp であ
る,としています.

# 起動時パラメータとして渡す unicon=eucjp を使って /etc/rc.d/rc.S で
# unicon で表示すべき文字列を EUC-JP か ISO-2022-JP か SHIFT-JIS かを
# 切りかえています

だから,対策としては,
$TERM=linux 時に Emacs のset-terminal-coding-system を euc-japan にするか,
boot 時のパラメータで unicon=jis としてコンソールを iso-2022-jp にするか,
ということになるでせう.

個人的には,dtterm(CDE(Common Desktop Environment)用のターミナルだっけ
か?)は最近使うことが無いので,

(if (or (equal (getenv "TERM") "dtterm") (equal (getenv "TERM") "xterm") )

(if (or (equal (getenv "TERM") "linux") (equal (getenv "TERM") "xterm") )

とでもするのが簡便かな.EmacsLisp は調べてないけど,or の引数を 2つ以上取れるなら

(if (or (equal (getenv "TERM") "dtterm") (equal (getenv "TERM") "xterm") (equal (getenv "TERM") "linux)))

でも行けそう.

このあたりはデフォルト設定の不整合な部分ではありますが,「コンソールで
Emacs なんか使わない(画面狭い)」「root で Emacs なんか使わない(便利すぎ
て危険)」というのが Plamo な環境の暗黙の了解だったりします(苦笑

---------
こじま

投稿者 xml-rpc : 2010年2月 6日 17:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/93112
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。