[Profile] [Emacs] [Software] [Webware] [Home]
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8. .emacsの基本的な設定

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.1 フォント設定

Meadow は X ウィンドウシステムで使われている BDF (glyph itmap Distribution Format) フォントと、Windows で使われ る TrueType フォントを選択できる。

BDF フォントはアドビが提唱するフォントの記述方式で、 主に X ウィンドウシステムで使われる。 詳細は http://partners.adobe.com/asn/developer/pssdk/CONTENTS/FONTS/GENERAL/DOCS/5005.PDF を参照のこと。

本特集では X ウィンドウシステムで見慣れた GNU Emacs と全く同じ見栄えになる こと(著者の好みによる。)から、BDF フォントの設定を行なう。なお、TrueType フォントの設定は、附属する README.Meadow を参照のこと。

たくさんのフォントを集めてひとまとめにした物をフォントセットを呼んでいて、 Meadow ではデフォルトのフォントセットは default-fontset という名前で登録さ れている。

以下では intlfonts というフォントセット名のフォントセットの登録を行なう。

フォントセットの切替は、シフトキーを押しながらマウスの左クリックを押すこと により行なう。

★「図4 フォントセットの切替」

default-fontset と intlfonts を見比べよう。intlfonts の方が X ウィンドウシス テムの見慣れた文字デザインになっているのがわかると思う。(文字に色付け (font-lock) 機能を有効にした intlfonts の画面は 図8 を参照のこと)

★「図5 default-fontsetの画面」
★「図6 intlfontsの画面」

BDFフォントは ftp://ftp.gnu.org/gnu/intlfonts/intlfonts-1.1.tar.gz から入手する。これには様々なサイズのフォントが含まれてい るため20Mバイトもの大きさになっている。 intlfonts-1.1.tar.gz に含まれるもののうち 16dotサイズの フォントのみを収録した ftp://ftp.gnu.org/gnu/intlfonts/intlfonts-1.1-split/16dots.tar.gz をここでは使うことにする。今月のLibCD Vol.xxには両者を 収録している。

`c:\Meadow\1.00\fonts\bdf'ディレクトリを作成してその下に 16dots.tar.gz を展開する。展開後のは以下のようなディレ クトリができあがる。

c:\Meadow\1.00\fonts\bdf\Asian
c:\Meadow\1.00\fonts\bdf\Chinese
c:\Meadow\1.00\fonts\bdf\Chinese-X
c:\Meadow\1.00\fonts\bdf\Ethiopic
c:\Meadow\1.00\fonts\bdf\European
c:\Meadow\1.00\fonts\bdf\Japanese
c:\Meadow\1.00\fonts\bdf\Japanese-X
c:\Meadow\1.00\fonts\bdf\Korean-X
c:\Meadow\1.00\fonts\bdf\Misc

.emacsに以下し示す記述をし、フォントの登録とフォントセッ トの登録を行う。

(w32-auto-regist-bdf-font "bdf16-ascii"
          "c:/Meadow/fonts/bdf/8x16.bdf" 0)
(w32-auto-regist-bdf-font "bdf16-latin-iso8859-1" 
          "c:/Meadow/fonts/bdf/European/etl16-latin1.bdf" 1)
(w32-auto-regist-bdf-font "bdf16-latin-iso8859-2" 
          "c:/Meadow/fonts/bdf/European/etl16-latin2.bdf" 1)
(w32-auto-regist-bdf-font "bdf16-latin-iso8859-3" 
          "c:/Meadow/fonts/bdf/European/etl16-latin3.bdf" 1)
(w32-auto-regist-bdf-font "bdf16-latin-iso8859-4" 
          "c:/Meadow/fonts/bdf/European/etl16-latin4.bdf" 1)
(w32-auto-regist-bdf-font "bdf16-japanese-jisx0212" 
          "c:/Meadow/fonts/bdf/Japanese/jisksp16.bdf" 0)
(w32-auto-regist-bdf-font "bdf16-japanese-jisx0208" 
          "c:/Meadow/fonts/bdf/Japanese-X/jiskan16.bdf" 0)
(w32-auto-regist-bdf-font "bdf16-latin-jisx0201"
          "c:/Meadow/fonts/bdf/Japanese-X/8x16rk.bdf" 0)
(w32-auto-regist-bdf-font "bdf16-katakana-jisx0201" 
          "c:/Meadow/fonts/bdf/Japanese-X/8x16rk.bdf" 1)

(new-fontset "intlfonts" '((ascii . "bdf16-ascii") (latin-iso8859-1 . "bdf16-latin-iso8859-1") (latin-iso8859-2 . "bdf16-latin-iso8859-2") (latin-iso8859-3 . "bdf16-latin-iso8859-3") (latin-iso8859-4 . "bdf16-latin-iso8859-4") (japanese-jisx0212 . "bdf16-japanese-jisx0212") (japanese-jisx0208 . "bdf16-japanese-jisx0208") (latin-jisx0201 . "bdf16-latin-jisx0201") (katakana-jisx0201 . "bdf16-katakana-jisx0201")))

それぞれの関数は以下のような意味である。

(w32-auto-regist-bdf-font FONTNAME BDFFILE &optional ENCODING)

w32-auto-regist-bdf-fontはフォントを登録する関数で、引 数にフォントの名前(FONTNAME)、BDFフォントファイル名 (BDFFILE)、エンコード番号(ENCODING)を取る。

(new-fontset NAME FONTLIST)

new-fontsetはフォントセットを登録する関数で、引数にフォ ントセット名(NAME)、どのcharsetにどのフォントを使うか を列挙したリスト(FONTLIST)を取る。

図7に C-h h (view-hello-file)で表示される多言語表示サンプル画面を示 す。今月のLibCD Vol.xxにはその時の設定を行なうためのintlfonts.elを収録した ので利用して欲しい。

★「図7 多言語表示サンプル画面」

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.2 フレームの設定

GNU Emacs では表示ウィンドウ (Windows で言うところの窓)のことをフレームと 呼んでいる。起動時のフレームの設定を以下のように .emacs に行う。例では文字 の色、背景色、フレームの位置と大きさおよび先ほど設定したフォントセットの設 定を行なっている。

(setq initial-frame-alist
  '((foreground-color . "black");; 文字の色
	(background-color . "snow")	;; 背景色
	(top . 0) (left . 0)		;; 位置(左上の座標)
	(width . 80) (height . 25)	;; 大きさ
	(font . "intlfonts")		;; フォントセット名
	))

ここではblackとsnowという色を使っているが、MeadowではX ウィンドウシステム で使われる色名テーブルが組込まれている。どのような色があるかは、 `c:/Meadow/1.00/etc/rgb.txt' に一覧表があるので好みの色を 見付けて欲しい。

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3 フォントロック(キーワード色付け)機能の設定

図5や図6はEmacs lispファイルを開いたサンプル画像であるが、これに重要なキー ワードに色付けする機能が用意されている。その機能は以下の設定で有効になる。

(global-font-lock-mode t)

★「図8 フォントロックサンプル画面」

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.4 LEIM (Library of Emacs Input Method)

GNU Emacs20 からは Mule の機能が統合され、広範囲の国際化文字集合を扱うこと ができるようになり、LEIM を使えば様々な言語の入力を行うことができる。

UNIX では Emacs をインストールする時点で LEIM のソースを Emacs のソースディ レクトリに展開しておけば自動的にインストールされるが、Meadow ではあらかじめ 組み込まれていないので追加インストールする必要がある。

LEIM は GNU Emacs と同じバージョンを使う。Meadow1.00 は Emacs20.2 ベースな ので leim-20.2.tar.gz を使う。今月のLibCD Vol.xxに収録した。

leim-20.2.tar.gzを展開し、leim ディレクトリを c:\Meadow\1.00 の下に移動し、 以下のような方法でインストールを行なう。

cd c:\Meadow\1.00\leim\CXTERM-DIC
c:\Meadow\1.00\bin\Meadow95.exe -batch -l titdic-cnv -f batch-titdic-convert .
copy *.el ..\quail

ここまでできたら Meadow を起動し、leim-list.el の作成を以下のように行なう。

M-x load-library RET quail RET
M-x quail-update-leim-list-file RET Meadow/1.00/leim RET

これで leim-list.el ができたので、起動時にロードするように以下のように ~/.emacsに追加する。

;;; leim
(setq load-path 
      (append (list "c:/Meadow/1.00/leim") load-path))
(load "leim-list")

これで準備は整い、あとは C-\ で IME (Input method) の ON / OFF のトグル動作で、入力方式は C-u C-\ で切替 えることができる。

各入力方法の使い方は C-\ で ON 状態にし、M-x quail-help RET とすると図8 に示すようなヘルプ画面を見ることができる。

★「図8 ハングルのヘルプ画面」

また、英語版Windowsで国際化文字集合を扱う方法は 原さん のページも参照して欲しい。

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.5 日本語環境とIMEの設定

デフォルトの言語環境として日本語環境の設定を set-language-environmentで行なう。

(set-language-environment "Japanese")

Meadow では、Windows に附属する IME も使用できる。以下は Windows IME を使 うための設定である。IME の ON と OFF は C-\でトグル動作をする。

;;; Windows IME
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")

;;; IME ONでカーソルの色を変える。 (add-hook 'mw32-ime-on-hook (lambda () (set-cursor-color "brown"))) (add-hook 'mw32-ime-off-hook (lambda () (set-cursor-color "black"))) ;; modelineにIMEの状態を表示 (setq mw32-ime-mode-line-state-indicator "[--]") (setq mw32-ime-mode-line-state-indicator-list '("--" "[あ]" "[--]"))

IME が ON 状態の時にカーソルの色を茶色に、OFF 状態の時にカーソルの色を黒に 設定し、モードラインにも IME の状態表示を行うようにしている。

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.6 UNC (Universal Naming Conbention)

ファイルを開く操作は、C-x C-f filename RET で行ない、 編集の後、C-x C-s で保存、C-x C-c で終了である。

Windows のネットワーク上の UNC と呼ばれる形式表記の他の Windows マシンの共 有ファイルは以下のようにして開くことができ、通常のローカルにあるファイルと 同様に扱うことができる。

C-x C-f //hostname/dirname RET

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.7 ange-ftpを使ったリモートファイルの編集

ange-ftp という Emacs lisp パッケージはリモートファイルをftp を使ってあた かもローカルにあるファイルのように扱うことのできるものである。

C-x C-f /login-name@host-name:~/filename RET

で開くことができる。 login-name と Windows のログオンネームが同じ場合には省略して

C-x C-f /host-name:~/filename RET

となる。同様にディレクトリエディタモード(dired)でも ange-ftp を使うことができ、 リモートディレクトリの同様にローカルにあるように扱うことができる。

C-x d /login-name@host-name:~/dirname RET

これを使えば例えばプロバイダにある ftp でアクセス可能な Web page の HTML ファイルを直接編集することも可能なのである。

anonymous FTP の場合は login-name が anonymous であるので

C-x C-f /anonymous@host-name:/pub/filename RET

である。例えば Meadowの 一次配布元の電子技術総合研究所の FTP ディレクトリを ディレクトリエディタモードで開くと以下のようなる。

★「図9 ange-ftpの表示画面」

もちろん通常のディレクトリエディタモードと同様にリモートファイルであっても コピーしたいファイルの上にカーソルを置いて(mでマークして)、C でコピーがで きる。

以下は Meadow で使う時の設定で、ftp.exe は Meadow に同封されているのだが、 meadow.exe と同じ場所にあるので通常はPATH が通っていないので ange-ftp-ftp-program-name にフルパスで設定する。

(setq ange-ftp-ftp-program-name (expand-file-name "ftp.exe" exec-directory))

ファイアウォールがあるような場合には以下のような設定で使えるようになる。 ftp を http に変換する http proxy であってもポート番号をセットすれば anonymous FTP を行なうことができる。

(setq ange-ftp-gateway-host "proxy-server"
      ange-ftp-smart-gateway-port "21"
      ange-ftp-local-host-regexp ".*"
      ange-ftp-smart-gateway t
      )

リートマシンが日本語版 Solaris などのようにファイルのリスト(ls の結果)が日 本語表示のものがある。その場合にうまくアクセスすることができないので以下の ような設定が必要となる。

(setq dired-move-to-filename-regexp
      (let* ((l "[A-Za-z\xa0-\xff]")
	     (k "[^\x00-\xff]")
	     (s " ")
	     (yyyy "[0-9][0-9][0-9][0-9]")
	     (mm "[ 0-1][0-9]")
	     (dd "[ 0-3][0-9]")
	     (HH:MM "[ 0-2][0-9]:[0-5][0-9]")
	     (western (concat l l l s dd s "\\(" HH:MM "\\|" s yyyy "\\)"))
	     (japanese (concat mm k " " dd k s
			       "\\(" s HH:MM "\\|" yyyy k "\\)")))
	(concat s "\\(" western "\\|" japanese "\\)" s)))

(eval-after-load "ange-ftp" '(progn (setq ange-ftp-date-regexp (let* ((l "[A-Za-z\xa0-\xff]") (k "[^\x00-\xff]") (s " ") (mm "[ 0-1][0-9]") (dd "[ 0-3][0-9]") (western (concat l l l s dd)) (japanese (concat mm k s dd k))) (concat s "\\(" western "\\|" japanese "\\)" s)))))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.8 リモートシェル

ange-ftp を使ってリモートファイルのアクセスができるようになると「grepした い」とか「コンパイルしたい」という欲求が湧いて来るだろう。

そんな時は M-x remote-compile を使おう。ミニバッファで

grep -n 検索文字列 ファイルネーム RET

と入力すればリモートディレクトリ上のgrepが行えるのでたいへん便利に使え、 C-c C-cC-x ` でのタグジャンプが可能なのである。

この時必要になる rsh.exe は例えば Sergey Okhapkinさん によるものがあげられる。 今月の LibCD Vol.xx に収録した remote.tar,gz に含まれている。

この非常に便利な機能を使うには、.emacsへの設定の必要はないが、 リモート側でリモートシェルの実行を許可する必要がある。

~/.rhostsに

hostname username

と書くのが一番簡単な方法で、セキュリティを考慮した上で許可しよう。 (もちろん許可しても安全かの判断はご自分で。)

もしDNSでWindowsマシンを引けない場合にはhostnameの変わりにIPアドレスで良い。

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.9 info

GNU のドキュメントは info と呼ばれる構造化文書 (hyper text)で書かれている。 それを読めるように、以下のようなリストでinfoを置くディレクトリを設定する。 この例では GNU で標準的にインストールされる c:/usr/local/info と Meadow をインストールした時の info ディレクトリ と part2 で解説する Cygwin の infoディレクトリを設定している。

(setq Info-directory-list 
      (list "c:/usr/local/info"
            "c:/Meadow/1.00/info"
            "c:/Cygnus/cygwin-b20/full-man/info"
            ))

info の起動は C-h i で、主なキーバインドを表に示す。

h infoのinfoを読む。
n 次のノードへ進む
p ひとつ前のノードへ戻る
u ひとつ上のノードへ行く
TAB 次の項目へ
i ノード検索
s 正規表現で文字検索

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.10 infoのインストール方法

Info のソースは Texinfo と呼ばれる書式で書かれていて、通常は texi という拡張子が付いたファイル名になっている。

Texinfo から info への変換方法は、C-x C-f foo.texi RET でファイルを開き、M-x texinfo-format-buffer RET で行えば、数秒後に info ファイルができあがるので、C-s でセーブする。これで info 形式 file ができあがる。

このファイルを所定の場所に、GNUの場合は通常は/usr/local/info に置く。

/usr/local/info/dir というファイルが info の目次とも言えるファイルで、 以下のような形式で登録する。

   * name: (info-filename).       説明文

以上で基本的な設定は終わりで、これだけでエディタとしての準備は整ったが、 シェルの説明がまだなのだが、part 2でbashの説明と共に設定を行なうこととする。

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]


# # This document was generated on March, 5 2004 using texi2html 1.61.1


URL: http://www.NetLaputa.ne.jp/~kose/
PGP Fingerprint: 59 8E 1E 4D 41 7F DD 80 12 13 47 A3 FB 62 97 44
Copyright (C) 1999, 2000 kose@yk.NetLaputa.ne.jp All Rights Reserved.
XXXXX