emacsをターミナルでカラー化する

えらくはまったので、備忘録として書いておく.

目標: emacsのカラー化をTeraterm上でも行う

シナリオは下記の通り

  1. OSにターミナルxtermを追加する
  2. emacs側にカラーでの設定をする
  3. 環境変数TERMをxtermにする
  4. emacsを起動
  • OSにターミナルxtermを追加する

FreeBSDの場合は/usr/share/misc/termcapにxterm用のエントリを加えて反映用コマンドを実行する.

# TERMCAPの追加エントリ
xterm|xterm-color|X11 terminal emulator:\
:ti@:te@:tc=xterm-xfree86:
xterm-xfree86|XFree86 xterm:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\
:kH=\EOF:@7=\EOF:kI=\E[2~:\
:kh=\EOH:*6=\EOF:kP=\E[5~:kN=\E[6~:\
:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:Km=\E[M:tc=xterm-basic:
#
# This chunk is used for building the VT220/Sun/PC keyboard variants.
xterm-basic|xterm common (XFree86):\
:li#24:co#80:am:kn#12:km:mi:ms:xn:bl=^G:\
:is=\E[!p\E[?3;4l\E[4l\E>:rs=\E[!p\E[?3;4l\E[4l\E>:le=^H:\
:AL=\E[%dL:DL=\E[%dM:DC=\E[%dP:al=\E[L:dc=\E[P:dl=\E[M:\
:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
:ho=\E[H:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:\
:im=\E[4h:ei=\E[4l:ks=\E[?1h\E=:ke=\E[?1l\E>:kD=\E[3~:kb=^H:\
:sf=\n:sr=\EM:st=\EH:ct=\E[3g:sc=\E7:rc=\E8:\
:eA=\E(B\E)0:as=^N:ae=^O:ml=\El:mu=\Em:up=\E[A:nd=\E[C:\
:md=\E[1m:me=\E[m^O:mr=\E[7m:so=\E[7m:se=\E[27m:us=\E[4m:ue=\E[24m:\
:ti=\E[?1049h:te=\E[?1049l:vi=\E[?25l:ve=\E[?25h:\
:ut:Co#8:pa#64:op=\E[39;49m:AB=\E[4%dm:AF=\E[3%dm:\

# 反映用コマンド
# cap_mkdb /usr/share/misc/termcap

参考URL FreeBSDでターミナルを追加する

  • .emacsに下記を追加する(ただしeamcs20以降)

(require 'font-lock)
(global-font-lock-mode t)

必要なら.bash_profile,.profileに加える.

TERM=xterm; export TERM

% emacs

たったこれだけのことをするのにxterm,xemacs(もちろんXも)入れちゃいましたよ.私はxterm入れることでTERMCAPの反映を行ったので,もしかしたらこれではうまくいかないかもしれない.嘘書いてたやなので,うまくいかなかったら連絡ください
(yama(at)netlab - is - tsukuba - ac - jp).

たぶん一部にはニーズが高いと思われるので,検索用キーワードも書いておく.


検索用キーワード: FreeBSD Teraterm ターミナル emacs カラー化 termcap xterm TERM