[Meadowで開発へ戻る]

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

Meadow 3.00開発版はSubversionサーバ上で随時更新中

Emacs 22.0.50追従のMeadow 3.00のインストールおよび設定について紹介します。

Meadow3.00の入手

バイナリの入手

バイナリには、ネットインストール版によるインストーラを使用したインストール方法があります。本ページではこの方法は紹介しません。

ソースコードの入手

Meadow 3.00はバージョン管理ツールSubversionが動くサーバ上でソースコードが公開されています。本ページでは、Subversionツールを使ってソースコードを入手して自分でビルドする方法を紹介します。

リポジトリから最新版ソースコードを入手

Meadow3.00のソースコードを、MeadowのSubversionリポジトリから入手します。

SVNによるソースのチェックアウト

1) Subversionのコマンドラインツールsvnを使って以下のように取得します。

$ svn co http://svn.meadowy.org/Meadow/trunk Meadow-3.00-dev

2) TortoiseSVNツールを使ってエクスプローラ上で展開します。

  1. 展開したいディレクトリを作成する。(例:D:\home\torutk\work\meadow-3.00-dev)
  2. エクスプローラ上から1.で作成したディレクトリを右クリックし、[SVNチェックアウト...]を選択すると、チェックアウトダイアログが表示される。
  3. チェックアウトダイアログで、リポジトリのURLに"http://svn.meadowy.org/Meadow/trunk を設定し[OK]ボタンを押す。

Meadow 3.00を動かすのに必要なライブラリの入手

Meadow 3.00を動かすには、以下のソフトウェアが別途必要です。

各ツールのホームページ


Meadow3.00のインストール

注:ネットインストール版については、本ページでは未記載です。

ツール/ライブラリのインストール

Meadow本体をインストールする前に、まずImageMagickをインストールします。

  1. ImageMagickのインストール
    入手したImageMagick-6.2.4-3-Q16-windows-dll.exeを起動すると、InstallShieldが上がるので、インストール先ディレクトリを指定してインストールします。デフォルトのC:\Program Files\ImageMagick-6.2.4-3-Q16でも構いません。環境変数PATHに反映するか聞かれたらチェックします。

Meadow2のソースファイルからのビルド

Cygwinでのビルド

Meadow-3.00-dev$ cd nt
nt$ ./configure.meadow.bat --with-gcc --no-cygwin --no-debug --prefix d:/win32app/Meadow3
  :
nt$ make bootstrap
  :
nt$ make
  :
nt$ make install

※2007/02/11現在、自分の環境ではmake bootstrap実行でエラーとなり、ビルドが通っていません。
make は、ver.3.81だとエラーになるのでver.3.80にする必要があります。

VC++でのビルド

Visual Studio 2003 C++の場合

Visual Studio 2003の設定がされたコマンドプロンプトから実行します。ただし、cygwinのコマンドを使用していると思われる箇所があるので、Cygwinのコマンドがあるディレクトリを環境変数PATHに追加しておきます。

D:\work\Meadow-3.00-dev> cd nt
D:\work\Meadow-3.00-dev\nt> configure.meadow.bat --with-msvc --no-debug --prefix d:\win32app\Meadow3
  :
D:\work\Meadow-3.00-dev\nt> nmake bootstrap BUILD_TYPE=spd
  :
D:\work\Meadow-3.00-dev\nt> nmake all BUILD_TYPE=spd
  :
D:\work\Meadow-3.00-dev\nt> nmake install BUILD_TYPE=spd

Meadow環境設定

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

Meadow3.00ディレクトリ構成
ディレクトリ 内容
D:\win32app\Meadow3 bin Meadowの実行ファイル
bitmap
etc
info
leim
lisp
site-lisp subdirs.el loadpath設定

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

D:\win32app\Meadow\2.10\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 3.00には、dot.emacs.jaという設定ファイルのテンプレートが添付されています。そこで、これをもとに必要な設定を追記していきます。

Meadow/Emacsでは、環境設定は各ユーザのホームディレクトリにおく.emacsファイルに行います。.emacsでloadpathを記述しなくてもrequireでsite-lisp以下にあるディレクトリからEmacs lispファイルを探して取り込むことができます。

torutk$ cd /win32app/Meadow3
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/ が オフィシャルサイトですが、
;; ;; http://www.meadowy.org/~shirai/elisp/mule-ucs.tar.gz に既知のパッチ
;; ;; をすべて適用したものがおいてあります。
;; ;; (set-language-environment) の前に設定します
;; (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の設定
(global-font-lock-mode t)
ここもテンプレート通りです。
;;; 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 . "lemon chiffon")
                    '(background-color . "dark slate gray")
                    '(mouse-color . "white")
                    '(cursor-color . "white")
                    '(font . "tt-font"); TrueType
                    '(width . 81)
                    '(height . 48)
                    '(top . 10)
                    '(left . 480))
              default-frame-alist))
テンプレートを修正しています。色や幅、高さ、位置は好みで調整します。
フォントは上記で設定したものを選択します。
文字(前景色)は白に近い黄色(lemon chiffon)、背景色は暗い深緑(dark slate gray)に設定。指定できる色と名前の一覧は、M-x list-colors-displayを実行すると見れる。
(Editメニュー→Text Properties→Display Colorsでも可)

幅81文字、高さ48文字のウィンドウサイズとする。起動時に開くウィンドウの位置は画面左上から(480, 10)の位置とする。
;; ミニバッファ拡大抑止
(setq resize-mini-windows nil)
ミニバッファが複数行になったりするのを抑止
;; バックアップファイルを特定のディレクトリに生成する
(setq make-backup-files t)
(setq backup-directory-alist
      (cons (cons "\\.*$" (expand-file-name "~/backup"))
            backup-directory-alist))
バックアップファイルをカレントではなく$HOME/backupの中に生成する
;; ;;; 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))
; Meadow環境で環境変数PATHにCygwinを追加
(setenv "PATH" (concat "d:/win32app/cygwin/bin;" (getenv "PATH")))

;;; argument-editing の設定
(require 'mw32script)
(mw32script-init)
shellにCygwinのbashを使用する場合の記述です。テンプレートのコメントを削除します。
コマンド検索パス・環境変数PATHにCygwinへのパスを設定します。
;;; gnuserv
(require 'gnuserv)
(gnuserv-start)
(setq gnuserv-frame (selected-frame))
gnuservを使ってDrag&Drop対応
;;;動的略語補完の設定
;; 大文字小文字を区別する
(setq dabbrev-case-fold-search nil)
動的略語展開で大文字小文字を区別します。
;; kill-ringに同じ内容の文字列を複数入れない
(defadvice kill-new (before ys:no-kill-new-duplication activate)
  (setq kill-ring (delete (ad-get-arg 0) kill-ring)))
(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

その他設定

[目次へ戻る]


追加EmacsLispパッケージ

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

D:\win32app\Meadow\site-lisp

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

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

apel-10.6の追加

apelを以下のディレクトリに展開されます。

D:\win32app\Meadow site-lisp apel
emu

apel-10.6を入手します。

http://cvs.m17n.org/elisp/APEL/

作業用の空きディレクトリにおいて、tarでアーカイブを解凍します。

インストールには、Cygwinのmakeコマンドを使う方法と、apelが提供するインストール用Windowsバッチファイルを使う方法と2種類あります。

1.Cygwinのmakeコマンドを使う方法(UNIXと同じ方法)

デフォルトのMakefileがあるので、これを次のように修正します。

EMACS  = d:/win32app/Meadow3/bin/Meadow.exe
LISPDIR=d:/win32app/Meadow3/site-lisp
VERSION_SPECIFIC_LISPDIR=$(LISPDIR)

そして、make installを実行します。

または、makeコマンド実行時にコマンドラインで上記を指定します。

$ make install EMACS=/win32app/Meadow3/bin/Meadow.exe
  LISPDIR=d:/win32app/Meadow3/site-lisp
  VERSION_SPECIFIC_LISPDIR=$(LISPDIR)

2.makeit.batを使う方法(Windows独自)

デフォルトのmakeit.batがあるので、これを次のように修正します。

set PREFIX=d:\win32app\Meadow3
set EMACS=%PREFIX%\bin\Meadow.exe
set LISPDIR=%PREFIX%\site-lisp

まず、バイトコンパイルを実行します。この時点ではMeadowのディレクトリへのコピーは行われません。

D:\work\apel-10.6> makeit elc
   :

つぎに、インストールによってコピーされるファイルとコピー先の確認を実行します。

D:\work\apel-10.6> makeit what-where
   :

確認が良であれば、実際にインストールを実行します。

D:\work\apel-10.6> makeit install
   :

先ほど削除した2つのディレクトリに新しいapelがインストールされます。

Daredevil SKKの追加

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

Daredevil SKK入手先

SKK Openlabのホームページから、Daredevil SKK を入手します。辿り方は、配布の"Main(Emacs Lisp Programs, tutorials, etc.)"→"Source archive directory"です。ddskk-yyyymmdd.tar.bz2と日付が付いたファイル名を入手します。なお、SKK用辞書ファイルも、同ページから、配布の"Dictionaries"→"Source archive directory"を辿ると入手できます。
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用の設定例がコメントアウトされた形で記述されているので、これをベースにMeadow3.00用に編集します。

;;; Meadow 1.14 用の設定例:
(setq APEL_SPECIFIC_LISPDIR "d:/win32app/Meadow3/site-lisp/apel")
(setq LISPDIR "d:/win32app/Meadow3/site-lisp")
(setq VERSION_SPECIFIC_LISPDIR "d:/win32app/Meadow3/site-lisp")
(setq EMU_PREFIX "emu")
(setq SKK_DATADIR "d:/win32app/lib/skk")
(setq SKK_INFODIR "d:/win32app/Meadow3/info")
(setq SKK_LISPDIR "d:/win32app/Meadow3/site-lisp/skk")

その後、makeを実行します。

ddskk-20070211$ make EMACS=/win32app/Meadow/bin/Meadow.exe install
    :
ddskk-20070211$

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

Cygwinがなければ、バッチファイルを使ったインストールを実行します。アーカイブの展開と辞書ファイルのコピーまでは上記と一緒です。

makeit.batを次のように修正します。

set PREFIX=d:\win32app\Meadow3
set EMACS=%PREFIX%\bin\Meadow.exe
set LISPDIR=%PREFIX%\site-lisp
rem set VERSION_SPECIFIC_LISPDIR=%PREFIX%\site-lisp
set DEFAULT_MAKE_ARG=

まず、バイトコンパイルを実行します。この時点ではMeadowのディレクトリへのコピーは行われません。

D:\work\ddskk-20070211> makeit elc
   :

つぎに、インストールによってコピーされるファイルとコピー先の確認を実行します。

D:\work\ddskk-20070211> makeit what-where
   :

確認が良であれば、実際にインストールを実行します。

D:\work\ddskk-20070211> makeit install
   :

このインストールの際に、なぜかskk-setup.elとleim-list.elの2ファイルがコピーされません。そこで手作業でコピーします。

D:\work\ddskk-20070211> copy skk-setup.el d:\win32app\Meadow3\site-lisp\skk
   :
D:\work\ddskk-20070211> copy leim-list.el d:\win32app\Meadow3\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

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
          (lambda ()
            (local-set-key "\C-a" 'beginning-of-line)
            (local-set-key "\C-e" 'end-of-line) 
            (physical-line-mode-on)))
テキストモードのときは物理行単位に移動するように設定。
Emacs-22.0では、C-a, C-eの定義がそれぞれmove-beginning-of-line, move-end-of-lineに変更され、physical-mode-lineのC-a, C-eが駄目になったので、physical-line-modeを使用するときだけEmacs-21の旧定義にC-a, C-eをバインドし直して回避します。

[目次へ戻る]


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>