![]() |
Meadow2.00インストールと設定 |
| Meadow 2.00が出ています。2004年7月7日 |
Emacs 21.1に対応したMeadow 2.0のインストールおよび設定について紹介します。
Meadow 2.0は長らくβテスト段階にありましたが、正式版がリリースされました。
Meadow 2.0はバイナリおよびソースコードでの配布と、ネットインストール版によるバイナリの配布の2つの形式があります。本ページでは、ソースコードを入手して自分でビルドする方法を紹介します。
Meadow2.0のソースコードおよびパッチは、tar+bz2形式で圧縮されています。Cygwinを先にインストールしておくと、tar+bz2形式を扱うコマンド(tar, bzip2)が利用できます。Cygwinは必ず必要なわけではありませんが、本サイトではCygwinがあることを前提に設定を進めていきます。
| バージョン | ファイル名 | 対応するEmacsバージョン | 備考 |
|---|---|---|---|
| 2.00 | Meadow-2.00-src.tar.gz | emacs 21.1.1 | ソース配布 |
| Meadow-2.00-i386.tar.gz | バイナリ配布 | ||
| ネットインストール版 setup-ja.exe |
バイナリ配布 |
Meadow 2.00を動かすには、以下のソフトウェアが別途必要です。
注:ネットインストール版については、本ページでは未記載です。
Meadowはtar+gz形式で圧縮されているので、Cygwinのtarコマンド(GNUtar)等[*1]でビルド作業用ディレクトリに展開します。展開するディレクトリにはスペースや漢字等が含まれているとよろしくないので、Windowsアプリケーション類を入れるC:\Program Filesではなく、別にディレクトリを設けます。以降の説明では、D:ドライブに作ったディレクトリD:\workの下で作業し、D:\win32appの下[*2]へインストールすることとしています。
[*1] 一般的な圧縮解凍ツールでも展開可能かもしれませんが、TAR形式の扱いに難があるかもしれません。フルパス名が長すぎるとおかしな挙動をするものがあります(というか大抵が同じDLLを使うので同じ問題を抱えている)。
[*2] Cygwin上でE:\win32appを/win32appにマウントするようにしています。マウントしていない場合は、cd /cygdrive/d/win32app のようにドライブ名を/cygdrive/[ドライブレター]と指定します。
Meadow本体をインストールする前に、まずImageMagick、libxml2、iconvをインストールします。
torutk$ cd /win32app win32app$ tar xzf Meadow-2.00-i386.tar.gz win32app$
win32app$ cd Meadow/2.00 2.00$ ./install.exe Enter the directory which Meadow read .emacs file from. If you do not specify, Meadow reads .emacs file in following directory. [E:\home\torutk] (HOME directory) 2.00$
torutk$ cd /work work$ tar xjf Meadow-2.00-src.tar.gz work$
[*1] Cygwin上でD:\win32appを/win32appに、D:\workは/workにマウントするようにしています。マウントしていない場合は、cd /cygdrive/d/win32app のようにドライブ名を/cygdrive/[ドライブレター]と指定します。
Meadow-2.00-src$ cd nt nt$ ./configure.meadow.bat --with-gcc --no-cygwin --no-debug --prefix d:/win32app/Meadow2 : nt$ make bootstrap : nt$ make : nt$ make install
D:\tmp\Meadow-2.00-src> cd nt D:\tmp\Meadow-2.00-src\nt> configure.meadow.bat --with-msvc --no-debug --prefix d:\win32app\Meadow2 : D:\tmp\Meadow-2.00-src\nt> nmake bootstrap BUILD_TYPE=spd : D:\tmp\Meadow-2.00-src\nt> nmake all BUILD_TYPE=spd : D:\tmp\Meadow-2.00-src\nt> nmake install BUILD_TYPE=spd
毎回BUILD_TYPE=spdを指定しているのは、なぜかconfigureで指定した--no-debugが反映されてなかったので。
afxres.hがない、setargv.objがない等によりビルドが失敗するので、以下の修正を行います。
2004年7月18日現在、nmake all時にエラーが発生しビルドがストップします.以下
cl -nologo -I. -D_X86_=1 -c -Zel -W2 -H63 -O2 -Ob2 -GBdF -Zi -Zp8 -DWIN 32_LEAN_AND_MEAN -Di386 -Fdobj-spd\i386\vc.pdb -D_CRTAPI1=_cdecl -DW32_VER4 -DME ADOW="\"2.00\"" -DMEADOW_VERSION_STRING="\"Meadow-2.00 (KIKYOU)\"" -Foobj-spd\i3 86\ make-docfile.c ntlib.c make-docfile.c make-docfile.c(37) : fatal error C1083: Cannot open include file: 'config.h': No such file or directory ntlib.c e:\home\toru\work\meadow\Meadow-2.00-src\lib-src\ntlib.h(23) : fatal error C1083 : Cannot open include file: 'pwd.h': No such file or directory Generating Code... NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. NMAKE : fatal error U1077: '"D:\Program Files\Microsoft SDK\Bin\Win64\nmake.exe" ' : return code '0x2' Stop.
1. nt\meadow.rcの修正
| 修 正 前 |
#ifndef __GNUC__ #include "afxres.h" #endif |
| 修 正 後 |
#ifndef __GNUC__ #include "WinUser.h" #define IDC_STATIC -1 #endif |
afxres.hのインクルードを削除し、代わりにWinUser.hをインクルード。さらにIDC_STATIC を定義。
| 修 正 前 |
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) #ifdef _WIN32 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT #pragma code_page(932) #endif //_WIN32 |
| 修 正 後 |
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) #ifdef _WIN32 #endif //_WIN32 |
LANGUAGE行を削除。code_paceのpragma文を削除。
2. nt\makefile.defを修正
| 修 正 前 |
# Using cvtres is necessary on NT 3.10 and doesn't hurt on later platforms. CVTRES = cvtres.exe AR = $(implib) # The assignment $(CC) = $(cc) fails even though variables are case sensitive. |
| 修 正 後 |
# Using cvtres is necessary on NT 3.10 and doesn't hurt on later platforms. CVTRES = cvtres.exe AR = link -lib # The assignment $(CC) = $(cc) fails even though variables are case sensitive. |
ARの定義を、$(implib)から link -lib に変更
3. lib-src\makefile.ntを修正
| 修 正 前 |
LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
-DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I..\nt\inc -I..\src
LINK_FLAGS = $(ARCH_LDFLAGS) -debug:PARTIAL -machine:$(ARCH) -subsystem:console -entry:mainCRTStartup setargv.obj
ALL = $(BLD)\make-docfile.exe \
|
| 修 正 後 |
#LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
-DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I..\nt\inc -I..\src
LINK_FLAGS = $(ARCH_LDFLAGS) -debug:PARTIAL -machine:$(ARCH) -subsystem:console -entry:mainCRTStartup
ALL = $(BLD)\make-docfile.exe \
|
ビルドの実施
D:\tmp\Meadow-2.00b2-src> cd nt D:\tmp\Meadow-2.00b2-src\nt> configure.meadow.bat --with-msvc --no-debug --prefix d:\win32app\Meadow2 : D:\tmp\Meadow-2.00b2-src\nt> nmake bootstrap BUILD_TYPE=spd : D:\tmp\Meadow-2.00b2-src\nt> nmake all BUILD_TYPE=spd : D:\tmp\Meadow-2.00b2-src\nt> nmake install BUILD_TYPE=spd
Meadow2.00をインストールすると、次の表のようなディレクトリ構成になります。後に追加するelisp(Meadow/Emacsの拡張パッケージ)は、site-lispの下に展開します。
| ディレクトリ | 内容 | ||
|---|---|---|---|
| D:\win32app\Meadow | 2.00 | Meadowの本体 | |
| site-lisp | subdirs.el | loadpath設定 | |
Meadowの実行ファイルは次の2つです。
| 実行ファイル名 | 内容 |
|---|---|
| Meadow.exe | Meadow実行プログラム本体です。 |
| RunMW32.exe | Meadowを起動するためのランチャです。 |
コマンドラインオプションで-qを指定すると、.emacsとdefault.elを読み込みません。
| 起動ファイル | -qオプション | --no-init-file | --no-site-file | (setq inhibit-default-initi t) |
| site-start.el | × | |||
| .emacs | × | × | ||
| default.el | × | × | × |
Meadow 2.00には、dot.emacs.jaという設定ファイルのテンプレートが添付されています。そこで、これをもとに必要な設定を追記していきます。
Meadow/Emacsでは、環境設定は各ユーザのホームディレクトリにおく.emacsファイルに行います。.emacsでloadpathを記述しなくてもrequireでsite-lisp以下にあるディレクトリからEmacs lispファイルを探して取り込むことができます。
torutk$ cd /win32app/Meadow Meadow$ cp dot.emacs.ja ~/.emacs
次に、.emacsファイルを編集していきます。
;;;; -*- mode: lisp-interaction; syntax: elisp; coding: iso-2022-7bit -*- ;;;; ;;;; Copyright (C) 2001 The Meadow Team ;; Author: Koichiro Ohba <koichiro@meadowy.org> ;; Kyotaro HORIGUCHI <horiguti@meadowy.org> ;; Hideyuki SHIRAI <shirai@meadowy.org> ;; KOSEKI Yoshinori <kose@meadowy.org> ;; and The Meadow Team. ;; ;;; Mule-UCS の設定 ;; ;; ftp://ftp.m17n.org/pub/mule/Mule-UCS/ ;; ;; (set-language-environment) の前に設定します ;; (require 'un-define) ;; (setq bitmap-alterable-charset 'tibetan-1-column) ;; (require 'jisx0213) ;;; 日本語環境設定 (set-language-environment "Japanese") |
ここはテンプレート通りです。 |
;;; IMEの設定
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
(add-hook 'mw32-ime-on-hook
(function (lambda () (set-cursor-height 2))))
(add-hook 'mw32-ime-off-hook
(function (lambda () (set-cursor-height 4))))
|
ここもテンプレート通りです。漢字変換入力にIMEを使う設定です。IMEをインライン使用することができます。 |
;; ;;; カーソルの設定 ;; ;; (set-cursor-type 'box) ; Meadow-1.10互換 (SKK等で色が変る設定) ;; ;; (set-cursor-type 'hairline-caret) ; 縦棒キャレット ;;; マウスカーソルを消す設定 (setq w32-hide-mouse-on-key t) (setq w32-hide-mouse-timeout 5000) |
ここもテンプレート通りです。 |
;;; font-lockの設定
(if window-system
(progn
(setq font-lock-support-mode 'jit-lock-mode)
(global-font-lock-mode t)))
|
;azy-lock-modeからjit-lock-modeに編個しています。 |
;;; TrueType フォント設定
(w32-add-font
"tt-font"
'((spec
((:char-spec ascii :height any)
strict
(w32-logfont "MS ゴシック" 6 12 400 0 nil nil nil 0 1 3 49))
((:char-spec ascii :height any :weight bold)
strict
(w32-logfont "MS ゴシック" 7 12 700 0 nil nil nil 0 1 3 49))
((:char-spec ascii :height any :slant italic)
strict
(w32-logfont "MS ゴシック" 7 12 400 0 t nil nil 0 1 3 49))
((:char-spec ascii :height any :weight bold :slant italic)
strict
(w32-logfont "MS ゴシック" 7 12 700 0 t nil nil 0 1 3 49))
((:char-spec japanese-jisx0208 :height any)
strict
(w32-logfont "MS ゴシック" 0 13 400 0 nil nil nil 128 1 3 49))
((:char-spec japanese-jisx0208 :height any :weight bold)
strict
(w32-logfont "MS ゴシック" 0 13 700 0 nil nil nil 128 1 3 49)
((spacing . -1)))
((:char-spec japanese-jisx0208 :height any :slant italic)
strict
(w32-logfont "MS ゴシック" 0 13 400 0 t nil nil 128 1 3 49))
((:char-spec japanese-jisx0208 :height any :weight bold :slant italic)
strict
(w32-logfont "MS ゴシック" 0 13 700 0 t nil nil 128 1 3 49)
((spacing . -1))))))
(set-face-attribute 'variable-pitch nil :font "tt-font")
|
TrueTypeフォント設定とBDFフォント設定はごっそり削除します。ローレベルAPIを使ってフォント設定しています。[注記1] |
;; 初期フレームの設定
(setq default-frame-alist
(append (list '(foreground-color . "black")
'(background-color . "AntiqueWhite")
'(border-color . "black")
'(mouse-color . "white")
'(cursor-color . "black")
'(font . "tt-font"); TrueType
'(width . 81)
'(height . 48)
'(top . 10)
'(left . 480))
default-frame-alist))
|
テンプレートを修正しています。色や幅、高さ、位置は好みで調整します。 フォントは別途設定した中から好みのものを選択します。フォントセットを定義したファイルを読み込み。小さ目のTerminalフォントを使用する。 文字(前景色)は黒(black)、背景色はやや黄色がかった白(AntiqueWhite)に設定。指定できる色と名前の一覧は、M-x list-colors-displayを実行すると見れる。 (Editメニュー→Text Properties→Display Colorsでも可) 幅81文字、高さ48文字のウィンドウサイズとする。起動時に開くウィンドウの位置は画面左上から(480, 10)の位置とする。 |
;; ミニバッファ拡大抑止 (setq resize-mini-windows nil) |
ミニバッファが複数行になったりするのを抑止 |
;; ;;; shell の設定
;; ;;; Cygwin の bash を使う場合
(setq explicit-shell-file-name "bash")
(setq shell-file-name "sh")
(setq shell-command-switch "-c")
; Meadowから起動するコマンド検索パスにCygwinを追加
(setq exec-path (append (list "d:/win32app/cygwin/bin")
exec-path))
;;; argument-editing の設定
(require 'mw32script)
(mw32script-init)
;;; shell coding-system の設定
(add-hook 'shell-mode-hook
(lambda ()
(set-buffer-process-coding-system 'sjis-dos 'sjis-unix)))
|
shellにCygwinのbashを使用する場合の記述です。テンプレートのコメントを削除します。また、Cygwin環境で改行コードに^Mが含まれないようにshell-modeにおいてcoding-systemを設定しています。[注記2] |
;;;動的略語補完の設定
;; 大文字小文字を区別する
(setq dabbrev-case-fold-search nil)
;; 日本語・英語混じり文での区切判定
(defadvice dabbrev-expand
(around modify-regexp-for-japanese activate compile)
"Modify `dabbrev-abbrev-char-regexp' dynamically for Japanese words."
(if (bobp)
ad-do-it
(let ((dabbrev-abbrev-char-regexp
(let ((c (char-category-set (char-before))))
(cond
((aref c ?a) "[-_A-Za-z0-9]") ; ASCII
((aref c ?j) ; Japanese
(cond
((aref c ?K) "\\cK") ; katakana
((aref c ?A) "\\cA") ; 2byte alphanumeric
((aref c ?H) "\\cH") ; hiragana
((aref c ?C) "\\cC") ; kanji
(t "\\cj")))
((aref c ?k) "\\ck") ; hankaku-kana
((aref c ?r) "\\cr") ; Japanese roman ?
(t dabbrev-abbrev-char-regexp)))))
ad-do-it)))
|
動的略語展開で大文字小文字を区別します。英語・日本語が混じった文章における区切り判定がうまくいくよう補正をしています。 |
(cd "~/") |
起動時のデフォルトディレクトリをホームに。 |
dot.emacs.jaのデフォルトのTrueTypeフォント設定では、アルファベットが"Courier New"となりますが、これは数字の'1'と小文字の'l'や、数字の'0'と大文字の'O'などが判別しずらいので、すべてMSゴシックにしています。
fontの設定方法は下記URLを参考にしています。
http://www4.kcn.ne.jp/%7Eboochang/emacs/meadow2-setup.html
http://www.boreas.dti.ne.jp/~miyoshi/Meadow2/index.html
UNIX USER誌1999.9特集記事の解説によると、explicit-shell-file-nameで対話的に使うシェル・モードを設定、shell-file-nameで外部コマンドを呼び出す基となるシェルコマンドを設定、shell-command-optionで外部コマンドを呼び出す際のオプションを指定します。
呼び出す外部コマンドが環境変数PATHにないときは、exec-pathにコマンドへのパスを追加します。なお、bash上で他のCygwinコマンド群を実行するためには、.bashrcに/bin等のPATHを設定するよう追加しておく必要があります。(.bash_profileは読み込まれないため)
シェルモード上で起動するコマンドの入出力文字の符号方式をset-buffer-process-coding-systemで設定します。
カレントドライブ以外のファイル名補完を行うためにshell-file-name-charsによる設定を行います。
mw32scriptはMeadow固有の拡張モジュールです。
KawaChokiサイトのEmacs/Meadow2で東雲フォントのページに分かりやすく解説されています。
東雲ビットマップフォントファミリーのサイトから入手します。
http://openlab.ring.gr.jp/efont/shinonome/
上記フォントのアーカイブを解凍し、中にある"*.bdf"ファイルをMeadowのディレクトリ内の適当な場所に配置します。例えば、以下のディレクトリを作成します。
| D:\win32app\Meadow\fonts\shinonome |
(1)簡単な設定方法
KawaChokiサイトのEmacs/Meadow2で東雲フォントで公開されている"meadow2-shinonome-fontset.el"を入手してMeadowインストールディレクトリのsite-lispの中のディレクトリに置きます。
Meadow Netinstall版で用意されているmiscパッケージをインストールします。もし、Netinstall版のMeadow2を使っていなければ、Netinstall版公開サイトからmiscパッケージを直接ダウンロードして解凍し、中に入っているbdf.elファイルだけ取り出して、site-lispの中のディレクトリに置きます。
.emacsファイルに指定を追加します。
;;; BDFフォントの設定
;; $MEADOW/fonts/shinonome 以下に置いた場合は次行の設定不要
(setq bdf-font-directory-shinonome "D:/win32app/Meadow/fonts/shinonome")
;; 作成するフォントセット(不要ならnilにする)
(setq bdf-use-shinonome12 t
bdf-use-shinonome12min t
bdf-use-shinonome12maru t
bdf-use-shinonome14 t
bdf-use-shinonome14min t
bdf-use-shinonome16 t
bdf-use-shinonome16min t)
;; フォントセット作成ファイルをloadする
(load "meadow2-shinonome-fontset")
|
Meadow起動後、Shift+右クリックで選択可能なフォント一覧に東雲フォントの設定が追加されています。
Emacsでは、その機能を拡張するのに、lispで書かれたファイル(elispパッケージ)を使用します。拡張するためのlispファイルは、以下のsite-lispディレクトリ以下に起きます。前者はMeadowのバージョン依存なlispファイルを置き、後者はバージョンに依存しないlispファイルを置きます。
| D:\win32app\Meadow | 2.00 | site-lisp |
| site-lisp |
あるディレクトリ以下に置かれたLispパッケージをEmacsが読み込まないようにする設定は、そのディレクトリ内に'.nosearch'というファイルを作成します。
apelは以下のディレクトリに展開されます。
| D:\win32app\Meadow | 2.00 | site-lisp | emu |
| site-lisp | apel |
apel-10.6を入手します。
http://cvs.m17n.org/elisp/APEL/
作業用の空きディレクトリにおいて、tarでアーカイブを解凍します。
インストールには、Cygwinのmakeコマンドを使う方法と、apelが提供するインストール用Windowsバッチファイルを使う方法と2種類あります。
1.Cygwinのmakeコマンドを使う方法(UNIXと同じ方法)
デフォルトのMakefileがあるので、これを次のように修正します。(Meadow2.00b1での場合)
EMACS=d:/win32app/Meadow/2.00/bin/Meadow.exe LISPDIR=d:/win32app/Meadow/site-lisp VERSION_SPECIFIC_LISPDIR=d:/win32app/Meadow/2.00/site-lisp
そして、make installを実行します。
または、makeコマンド実行時にコマンドラインで上記を指定します。
$ make install EMACS=/win32app/Meadow/2.00/bin/Meadow.exe LISPDIR=d:/win32app/Meadow/site-lisp VERSION_SPECIFIC_LISPDIR=d:/win32app/Meadow/2.00/site-lisp
2.makeit.batを使う方法(Windows独自)
デフォルトのmakeit.batがあるので、これを次のように修正します。(Meadow2.00b1での場合)
set MEADOWVER=2.00 set PREFIX=d:\win32app\Meadow set EMACS=%PREFIX%\%MEADOWVER%\bin\Meadow.exe set LISPDIR=%PREFIX%\site-lisp set VERSION_SPECIFIC_LISPDIR=%PREFIX%\%MEADOWVER%\site-lisp
まず、バイトコンパイルを実行します。この時点ではMeadowのディレクトリへのコピーは行われません。
D:\work\apel-10.5> makeit elc :
つぎに、インストールによってコピーされるファイルとコピー先の確認を実行します。
D:\work\apel-10.5> makeit what-where :
確認が良であれば、実際にインストールを実行します。
D:\work\apel-10.5> makeit install :
先ほど削除した2つのディレクトリに新しいapelがインストールされます。
注記)APEL-10.5のmakeit.batにおいて、LISPDIRにD:\win32app\Meadow\site-lispを指定しても、install時にはなぜかD:\win32app\Meadow\2.00\site-lispとなってしまいます。
skk-12系を入れてみます。Daredevilという開発コード名(?)が付けられているようです。
SKK Openlabのホームページから、Daredevil SKK を入手します。現時点で最新の12.2.0をインストールします。
http://openlab.ring.gr.jp/skk/index-j.html
Cygwinをインストールしていれば、Cygwin上でmakeコマンドを使ってSKKのインストールが実行できます。作業用の空きディレクトリにおいて、tarでアーカイブを解凍します。
また、辞書ファイルをdicディレクトリの中にコピーしておきます(例えばSKK-JISYO.L)。
SKK-CFGを次のように修正します。標準で用意されているSKK-CFGの中に、Meadow
1.14用の設定例がコメントアウトされた形で記述されているので、これを編集します。
;;; Meadow 1.14 用の設定例:
(setq APEL_SPECIFIC_LISPDIR "d:/win32app/Meadow/site-lisp/apel")
(setq LISPDIR "d:/win32app/Meadow/site-lisp")
(setq VERSION_SPECIFIC_LISPDIR "d:/win32app/Meadow/2.00/site-lisp")
(setq EMU_PREFIX "emu")
(setq SKK_DATADIR "d:/win32app/lib/skk")
(setq SKK_INFODIR "d:/win32app/Meadow/2.00/info")
(setq SKK_LISPDIR "d:/win32app/Meadow/site-lisp/skk")
その後、makeを実行します。
ddskk-12.2.0$ make EMACS=/win32app/Meadow/2.00/bin/Meadow.exe install
:
ddskk-12.2.0$
Cygwinがなければ、バッチファイルを使ったインストールを実行します。アーカイブの展開と辞書ファイルのコピーまでは上記と一緒です。
makeit.batを次のように修正します。
set PREFIX=d:\win32app\Meadow2 set EMACS=%PREFIX%\2.00\bin\Meadow.exe set LISPDIR=%PREFIX%\site-lisp rem set VERSION_SPECIFIC_LISPDIR=%PREFIX%\2.00\site-lisp set DEFAULT_MAKE_ARG=
まず、バイトコンパイルを実行します。この時点ではMeadowのディレクトリへのコピーは行われません。
D:\work\ddskk-20030504> makeit elc :
つぎに、インストールによってコピーされるファイルとコピー先の確認を実行します。
D:\work\ddskk-20030504> makeit what-where :
確認が良であれば、実際にインストールを実行します。
D:\work\ddskk-20030504> makeit install :
このインストールの際に、なぜかskk-setup.elとleim-list.elの2ファイルがコピーされません。そこで手作業でコピーします。
D:\work\ddskk-20030504> copy skk-setup.el d:\win32app\Meadow2\2.00\site-lisp\skk : D:\work\ddskk-20030504> copy leim-list.el d:\win32app\Meadow2\2.00\site-lisp\skk
Daredevil SKKでは、.emacsには何も記述しなくても設定が仕込まれます。
| キーアサイン | 内容 |
|---|---|
| C-x C-j | skk-mode |
| C-x j | skk-auto-fill-mode |
| C-x t | skk-tutorial |
MuleでUnicodeを直接扱えます。以下からアーカイブファイルを入手します。現在正式版は2001年4月にリリースされているMule-UCS-0.84ですが、Meadow上での動作で若干の問題[注記]があるため、test版を使用します。
ftp://ftp.m17n.org/pub/mule/Mule-UCS/test/Mule-UCS-current.tar.gz
[注記]Meadow上でShiftJIS(DOS改行)で編集途上のバッファがある状態でMeadowを終了するときに、Saveするとなぜか改行コードが(CR+CR+LF)となってしまう。
D:\win32app\Meadow\site-lispの下にMule-UCS-currentを展開します。そのままではMeadow起動時にエラーが出るので、必ずバイトコンパイルを実施します。
site-lisp$ cd Mule-UCS-current Mule-UCS-current$ /win32app/Meadow/2.00/bin/Meadow.exe -q --no-site-file -batch -l mucs-comp.el : : Mule-UCS-current$ cd lisp/jisx0213 jisx0213$ /win32app/Meadow/2.00/bin/Meadow.exe -q --no-site-file -batch -l x0213-comp.el : : jisx0213$
参考:「Windows98/2000上でのMeadowの動かし方」高橋誠さんのページにMule-UCSの設定があります。
http://homepage2.nifty.com/hobbit/html/meadow.htmll
;; ;;; Mule-UCS の設定 ;; ;; ftp://ftp.m17n.org/pub/mule/Mule-UCS/ ;; ;; (set-language-environment) の前に設定します (require 'un-define) (require 'jisx0213) |
テンプレートからMule-UCS設定のコメントを削除して有効にする。 |
カーソルの移動を論理行ではなく物理行単位にしたいときに使用します。
http://www.taiyaki.org/elisp/physical-line/
から、physical-line.elを入手し、D:\win32app\Meadow\site-lispの下の適当なところに置きます。site-lisp直下でもよいですが、細かいelispファイルが増えるのを嫌ってsite-lisp\utilの中に置いています。
;;;
;;; 物理行でスクロール
;;; (by physical-line.el)
(load "physical-line")
; テキストモードでのスクロールは物理行とする
(add-hook 'text-mode-hook
'physical-line-mode-on)
|
テキストモードのときは物理行単位に移動するように設定。 |
HTML編集で使用します。また、HTMLファイル中にスクリプトを記述するような場合に特に威力を発揮します。例えば、JSP(Java Server Page)、ASP、PHPなどです。JSPファイル編集においでJavaコード部分を編集するときは、JDEEと連動します。
html-helper-modeは古くからあるようですが、現在はバージョン3.x系が以下URLから入手できます。
http://www.gest.unipd.it/~saint/hth.html
上記サイトから、html-helper-mode.tar.gzと、合わせてtempo.el.gzを入手します。
;;;
;;; HTML編集
;;;
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(autoload 'jsp-html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist
(cons '("\.html$" . html-helper-mode)
auto-mode-alist))
(setq auto-mode-alist
(cons '("\.jsp$" . jsp-html-helper-mode)
auto-mode-alist))
(add-hook 'html-helper-mode-hook
'(lambda () (auto-fill-mode 0)))
|
これでよいのか? |
JSPを編集中、スクリプトコードの個所にキャレットを置いて[F4]キーを押すと、<%と%>に囲まれたスクリプト部分だけがバッファに表示され、しかもJDEEの編集モードになっています。もう一回[F4]キーを押すと、ファイル全体が表示され、HTML/JSP helperモードに戻ります。
| キーバインド | 挿入されるタグ |
| C-c C-h H | <head></head> |
| C-c C-h B | <body></body> |
| C-c C-h m | <meta content=""> |
| C-c C-h t | <title></title> |
| C-c M-h # | <h#></h#> ※#は数字1-6 |
| C-c C-a l | <a href="" ></a> |
| M-RET | <p></p> |
外部プログラムのispellと単語集が必要です。
入手先:http://www.fsci.fuk.kindai.ac.jp/kakuto/soft.html
展開後、binの中にある実行ファイルをPATHの通った場所に起きます。面倒なのでMeadowのbinの中に放り込んでしまいました。
dicの中にあるenglish.hashファイルを、どこか適切な場所(デフォルト:c:\usr\local\lib)に起きます。今回はd:\win32app\lib\ispellディレクトリを作ってそこに放り込みました。
入手先:http://sourceforge.net/projects/wordlist/
Ispell-EnWLを入手すればよいと思います。適切な場所に展開します。今回は上記のispellと同じ場所に放り込んでいます。
;;; スペルチェック
; Encoded-KbdマイナーモードでispellのスペルチェックキーバインドM-$が
; 乗っ取られるのを防止
(define-key encoded-kbd-mode-map "\e" nil)
; 日本語をスキップ
(eval-after-load "ispell"
'(add-to-list 'ispell-skip-region-alist '("[^\000-\3777]+")))
; スペルチェック辞書
(setenv "DICTIONARY" "d:/win32app/lib/ispell/english.hash")
(setq ispell-alternate-dictionary "d:/win32app/lib/ispell")
(setq ispell-grep-command "grep")
|
ispellのdic中のファイルとwordsはd:\win32app\lib\ispellの中に入れてある場合の設定。 |
| チェック範囲 | 操作 |
|---|---|
| リージョン | M-x ispell-region |
| バッファ | M-x ispell-buffer |
| カーソルのある単語 | M-$ |
普通にファイルをドラッグ&ドロップしたり、「送る」メニューにMeadowを追加して起動すると、新たなプロセスとしてMeadowが起動します。すると起動に時間がかかったりファイル編集の一貫性がずれたりと、いいことがありません。そこで、gnuservを使って普通のWindowsアプリケーションのようにドラッグ&ドロップや送るメニューで起動できるようにします。
http://shimooku.hp.infoseek.co.jp/
からgnuservを入手します。なかにある以下の実行ファイルを、環境変数PATHに設定されたディレクトリに置きます。(D:\win32app\Meadow\2.00b1\binをPATHに追加して、ここに置くと便利でしょう)
以下のelispファイルを、Meadowのロードパスの中に置きます。(例:D:\win32app\Meadow\site-lisp\utilの中)
;;; ;;; gnuserv ;;; (require 'gnuserv) (gnuserv-start) (setq gnuserv-frame (selected-frame)) |
新しいフレームは開かない |
| 環境変数名 | 設定内容 |
|---|---|
| GNUCLIENTW | -F |
| GNUDOITW | -F |
| RUNEMACS | RunMW32 |
※環境変数に設定したくない場合、レジストリに設定することで対応できます。
\HKEY_CURRENT_USER\Software\GNU\gnuserv
または
\HKEY_LOCAL_MACHINE\Software\GNU\gnuserv
ファイルエクスプローラ等で右クリックした時に現れるポップアップメニューの「送る」の中にMeadowを追加します。まず、「スタート」メニューを右クリックしてエクスプローラを起動します。Windows2000ならば、C:\Documents and Settings\<ユーザ名>\スタートメニューが開かれていると思います。<ユーザ名>\SendToの中に、先ほどコピーしたgnuclientw.exeへのショートカットを作って置きます。このときアイコンもMeadowのものに設定しておくと見栄えが良いでしょう。
gnuclientw.exeへのショートカットを作ります。