最終更新日:2003.07.15
Cygwinと一緒にMeadowを便利に使いたいと思ったとき、デフォルトの設定では困ることがいくつかあります。
あちこちのサイトを参考にさせて貰ったり、試行錯誤したりしてできあがった設定を、ここにメモします。
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のパスからWindowsのパスに自動変換されるので良いです。でも、起動中にファイルを開くときなどにもCygwinのパスを利用したいので、cygwin-mount.elというものを見つけてきました。
設定例はフジタユウイチ氏のCygwin & Meadow Setupを参考にしましたので、そちらを参照してください。
shell-modeでcygwinのbashを使うために、~/.emacsに次の設定を加えました。
(setq explicit-shell-file-name "bash.exe") (setq shell-file-name "sh.exe") (setq shell-command-switch "-c")
え〜、これに関しては設定情報を記したサイトがそこら中にあるので、改めて書く必要もないでしょうけれど、一応書いておきます。
~/.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というページに設定例が書いてありました。