Meadow on Cygwinの設定

最終更新日:2003.07.15


目次

  1. 概要
  2. Shell Script化
  3. Cygwinのパスを使う
  4. shell-modeでbashを使う
  5. WindowsのIMEを使う
  6. ウィンドウサイズ
  7. 長い行でのカーソル移動

概要

Cygwinと一緒にMeadowを便利に使いたいと思ったとき、デフォルトの設定では困ることがいくつかあります。

あちこちのサイトを参考にさせて貰ったり、試行錯誤したりしてできあがった設定を、ここにメモします。

一番上に戻る


Shell Script化

Meadowのインストーラーは自動的に起動用のBATファイルを生成すると思います。しかし、これをそのままCygwin bashから呼ぶと一々cmd.exeが起動して五月蝿いので、このBATファイルの中身をShell Scriptに移植し、多少手を加えました。

下記の内容を/bin/MeadowNT.shとして保存し、更にシンボリックリンク/bin/emacsを作りました。

#!/bin/sh
emacs_dir_cygwin=/cygdrive/d/Meadow/1.10
emacs_dir="D:/Meadow/1.10"
EMACSLOADPATH="d:/Meadow/1.10/site-lisp;d:/Meadow/site-lisp;d:/Meadow/1.10/lisp"
# Use new proxy shell by default.
SHELL="d:/cygwin/bin/bash.exe"

EMACSDATA=${emacs_dir}/etc
EMACSPATH=$emacs_dir}/bin
EMACSLOCKDIR=${emacs_dir}/lock
# INFOPATH=${emacs_dir}/info
EMACSDOC=${emacs_dir}/etc
# TERM=${SHELL}

# The variable HOME is used to find the startup file, ~/_emacs.  Ideally,
# this will not be in this file but should already be before
# this file is invoked.  If HOME is not set, use some generic default.

HOME_SAVE=${HOME}
HOME_EXISTS=yes
HOME_DEFAULT=${HOME}
HOME=`cygpath -w ~`
if [ $HOME = $HOME_SAVE ]; then
    HOME_EXISTS="no"
fi
if [ $HOME_EXISTS = "yes" ]; then
    HOME=$HOME_SAVE
fi
if [ $HOME_EXISTS = "no" ]; then
    HOME=$HOME_DEFAULT
fi
if [ "$HOME_EXISTS" != "yes" ]; then
    echo "HOME is not set!  Using $HOME as a default..."
fi

param=""
f_ate_hh=""
for i in $*; do
    t=`echo "$i" | sed -e 's/^-.*//g'`
    if [ "$t" != "" ]; then
	param="$param `cygpath -i -w $i`"
    elif [ "$f_ate_hh" ]; then
	param="$param `cygpath -a -i -w -- $i`"
    else
	if [ "$i" = "--" ]; then
	   f_ate_hh="true"
	else
	    param="$param $i"
	fi
    fi
done

$emacs_dir_cygwin/bin/MeadowNT.exe $param

一番上に戻る


Cygwinのパスを使う

起動時の引数は、上記スクリプトによってCygwinのパスからWindowsのパスに自動変換されるので良いです。でも、起動中にファイルを開くときなどにもCygwinのパスを利用したいので、cygwin-mount.elというものを見つけてきました。

設定例はフジタユウイチ氏のCygwin & Meadow Setupを参考にしましたので、そちらを参照してください。

一番上に戻る


shell-modeでbashを使う

shell-modeでcygwinのbashを使うために、~/.emacsに次の設定を加えました。

(setq explicit-shell-file-name "bash.exe")
(setq shell-file-name "sh.exe")
(setq shell-command-switch "-c")

一番上に戻る


WindowsのIMEを使う

え〜、これに関しては設定情報を記したサイトがそこら中にあるので、改めて書く必要もないでしょうけれど、一応書いておきます。

~/.emacsに次の設定を加えてください。あ、色の設定部分はお好みで#RRGGBB形式で書き換えてください。

(set-language-environment "Japanese")
(set-default-coding-systems 'sjis)
(set-keyboard-coding-system 'sjis)
(set-terminal-coding-system 'euc-jp) ; cygwinのGNUツール用
(setq file-name-coding-system 'sjis)
(set-clipboard-coding-system 'sjis-dos)
(set-w32-system-coding-system 'sjis-dos)
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(set-cursor-color "#a0a0ff")
(add-hook 'mw32-ime-on-hook (lambda () (set-cursor-color "orange")))
(add-hook 'mw32-ime-off-hook (lambda () (set-cursor-color "#a0a0ff")))
(setq-default mw32-ime-mode-line-state-indicator "[cC]")
(setq mw32-ime-mode-line-state-indicator-list '("cC" "[に]" "[cC]"))

一番上に戻る


ウィンドウサイズ

デフォルトでは、Meadowの起動時のウィンドウサイズは大きすぎるように思いましたので、~/.emacsにこれを加えました。

(setq default-frame-alist
    (append (list '(width . 80)
                  '(height . 30)
            )
     default-frame-alist)
)

一番上に戻る


長い行でのカーソル移動

折り返している長い行において、Ctrl+nを押したときに「表示上の」次の行に行ってくれると便利ですが、デフォルトでは次の「論理上の」行に行ってしまいます。

daisaku氏のMeadowというページに設定例が書いてありました。

一番上に戻る


© 2003 ゆうき