[Meadowで開発へ戻る]

Meadow2.00インストールと設定

Meadow 2.00が出ています。2004年7月7日

Emacs 21.1に対応したMeadow 2.0のインストールおよび設定について紹介します。

Meadow 2.0は長らくβテスト段階にありましたが、正式版がリリースされました。

Meadow2.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 2.00を動かすには、以下のソフトウェアが別途必要です。

Meadowのサイトに置かれているファイル

各ツールのホームページ


Meadow2.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をインストールします。

  1. ImageMagickのインストール
    入手したImageMagick-6.0.1-Q16-windows-dll.exeを起動すると、InstallShieldが上がるので、インストール先ディレクトリを指定してインストールします。デフォルトのC:\Program Files\ImageMagick-6.0.1-Q16でも構いません。環境変数PATHに反映するか聞かれたらチェックします。
  2. libxml2のインストール
    DLLだけ必要なので、zipを解凍後、libxml2.dllを環境変数PATHが通ったディレクトリにコピーします。(例:C:\WINNT\System32, あるいは1.のImageMagickのインストール先)
  3. iconvのインストール
    DLLだけ必要なのでzipを解凍後、iconv.dllを環境変数PATHが通ったディレクトリにコピーします。(例:C:\WINNT\System32, あるいは1.のImageMagickのインストール先)

Meadow2のバイナリアーカイブファイルからのインストール

アーカイブの展開

torutk$ cd /win32app
win32app$ tar xzf Meadow-2.00-i386.tar.gz
win32app$ 

install.exeの実行

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$ 

Meadow2のソースアーカイブファイルからのビルドとインストール

Meadow 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/[ドライブレター]と指定します。

Cygwinでのビルド

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

VC++でのビルド

VC++ 6.0の場合
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が反映されてなかったので。

VC++ Toolkit 2003の場合

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の修正

meadow.rc 10行目付近から


#ifndef __GNUC__
#include "afxres.h"
#endif


#ifndef __GNUC__
#include "WinUser.h"
#define IDC_STATIC -1
#endif

afxres.hのインクルードを削除し、代わりにWinUser.hをインクルード。さらにIDC_STATIC を定義。

meadow.rc 22行目付近から


#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を修正

meadow.def 170行目付近から


# 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を修正

lib-src\makefile.nt 28行目付近から


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

Meadow環境設定

Meadow2.00をインストールすると、次の表のようなディレクトリ構成になります。後に追加するelisp(Meadow/Emacsの拡張パッケージ)は、site-lispの下に展開します。

Meadow2.00pre1ディレクトリ構成
ディレクトリ 内容
D:\win32app\Meadow 2.00 Meadowの本体
site-lisp subdirs.el loadpath設定

Meadowの実行ファイルは次の2つです。

D:\win32app\Meadow\2.00\bin
実行ファイル名 内容
Meadow.exe Meadow実行プログラム本体です。
RunMW32.exe Meadowを起動するためのランチャです。

設定の読み込み

  1. コマンドラインオプション
  2. site-start.el
  3. .emacsまたは.emacs.el
  4. default.el

コマンドラインオプションで-qを指定すると、.emacsとdefault.elを読み込みません。

起動ファイル -qオプション --no-init-file --no-site-file (setq inhibit-default-initi t)
site-start.el ×
.emacs × ×
default.el × × ×

設定ファイル.emacs

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ファイルを編集していきます。

.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 "~/")
起動時のデフォルトディレクトリをホームに。

[注記1]font設定はローレベルAPI使用

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

[注記2]Meadowから利用するシェルの設定方法

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固有の拡張モジュールです。

フォント設定

ハイレベルAPI

ローレベルAPI

東雲ビットマップフォント

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+右クリックで選択可能なフォント一覧に東雲フォントの設定が追加されています。

その他設定

[目次へ戻る]


追加EmacsLispパッケージ

Emacsでは、その機能を拡張するのに、lispで書かれたファイル(elispパッケージ)を使用します。拡張するためのlispファイルは、以下のsite-lispディレクトリ以下に起きます。前者はMeadowのバージョン依存なlispファイルを置き、後者はバージョンに依存しないlispファイルを置きます。

D:\win32app\Meadow 2.00 site-lisp
site-lisp

Elispパッケージ読み込みの抑制

あるディレクトリ以下に置かれたLispパッケージをEmacsが読み込まないようにする設定は、そのディレクトリ内に'.nosearch'というファイルを作成します。

apel-10.6の追加

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となってしまいます。

Daredevil SKKの追加

skk-12系を入れてみます。Daredevilという開発コード名(?)が付けられているようです。

Daredevil SKK入手先

SKK Openlabのホームページから、Daredevil SKK を入手します。現時点で最新の12.2.0をインストールします。
http://openlab.ring.gr.jp/skk/index-j.html

Daredevil SKK インストール (Cygwin make)

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$

Daredevil SKK インストール(makeit.bat)

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

.emacs設定追加(Daredevil SKK)

Daredevil SKKでは、.emacsには何も記述しなくても設定が仕込まれます。

キーアサイン 内容
C-x C-j skk-mode
C-x j skk-auto-fill-mode
C-x t skk-tutorial

Mule-UCS current(2003/01/29版)の追加

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起動時にエラーが出るので、必ずバイトコンパイルを実施します。

  1. mucs-comp.el を呼んでバイトコンパイル
  2. x0213-comp.elを呼んでバイトコンパイル
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

.emacs設定追加

.emacsの設定変更
;; ;;; Mule-UCS の設定
;; ;; ftp://ftp.m17n.org/pub/mule/Mule-UCS/
;; ;; (set-language-environment) の前に設定します
(require 'un-define)
(require 'jisx0213)
テンプレートからMule-UCS設定のコメントを削除して有効にする。

physical-lineの追加

カーソルの移動を論理行ではなく物理行単位にしたいときに使用します。

http://www.taiyaki.org/elisp/physical-line/

から、physical-line.elを入手し、D:\win32app\Meadow\site-lispの下の適当なところに置きます。site-lisp直下でもよいですが、細かいelispファイルが増えるのを嫌ってsite-lisp\utilの中に置いています。

.emacs設定追加

.emacsの設定変更
;;;
;;; 物理行でスクロール  
;;; (by physical-line.el)
(load "physical-line")
; テキストモードでのスクロールは物理行とする
(add-hook 'text-mode-hook 
             'physical-line-mode-on)
テキストモードのときは物理行単位に移動するように設定。

html-helper-modeの追加

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を入手します。

.emacs設定追加

.emacsの設定変更
;;;
;;; 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モードに戻ります。

キーバインドの例(html)

キーバインド 挿入されるタグ
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と単語集が必要です。

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ディレクトリを作ってそこに放り込みました。

wordsの入手

入手先:http://sourceforge.net/projects/wordlist/

Ispell-EnWLを入手すればよいと思います。適切な場所に展開します。今回は上記のispellと同じ場所に放り込んでいます。

.emacs設定追加

.emacsの設定変更
;;; スペルチェック
; 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を起動しないようにする

普通にファイルをドラッグ&ドロップしたり、「送る」メニューに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の中)

.emacs設定追加

.emacsの設定変更
;;;
;;; 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へのショートカットを作ります。


This page is written by TAKAHASHI,Toru <torutk@alles.or.jp>