| このページは 04月のキャッシュ情報です。 |
設定とは?
[ 87] Meadow の設定例 -- めどうさん
[引用サイト]
http://kawacho.don.am/win/meadow/customize/dot-emacs-sample.html
|
Meadow の設定例を、簡単な説明付きで紹介しています。Meadow の設定方法(".emacs" に Emacs Lisp を書く)を既に知っている人向けになっています。Meadow を使う・設定するのが初めての人は、Meadow 1.14 から設定ファイルのサンプルが付属するようになったのでそれをベースにカスタマイズするとよいでしょう(Meadow のインストール参照)。 まだ日本語を書いていない、ASCII 文字だけの場合は、".emacs" の先頭の行に次のような「おまじない」を書いておきます。このように書いておくと、後々、".emacs" に日本語でコメントを書いたとき、自動的に iso-2022-7bit で保存されるそうです。またこの「おまじない」は読み込み時の文字符号化方式の判別にも使われるようです。 既に ".emacs" に日本語のコメントなどを書き加えている場合、iso-2022-7bit/-jp(JIS) で保存されているかどうかを調べるには、".emacs" を開いてからモード行の左の方を見ます。次の図のように、"J" と表示されていれば OK です。 と表示されるので、iso-2022-7bit と入力してリターンキーを押します。うまくいけばモード行に "J" と表示されます。 Emacs 20.4(Meadow 1.10) から、ユーザ設定ファイル名として、".emacs.el" という、拡張子(*.el)付きのものが使えるようになっています。".emacs.el" がある場合はそれが読み込まれ、".emacs" は無視されるので注意してください。また、バイトコンパイルされたもの(".emacs.elc")がある場合はそれが優先されます。 つまり、Emacs(Meadow) は次の順番でユーザ設定ファイルを探し、最初に見つかったものだけを load するということです。 ".emacs" をバイトコンパイルして起動を少し速くすることができる、ということでもありますが、".emacs" を書き換えたあと、バイトコンパイルしなおさないと設定が反映されないことに気を付けましょう。 Emacs は様々なプラットフォームで動作し、様々な言語を扱えます。日本語、Windows 環境という我々にとって当たり前な環境で使う場合でも、それなりの設定が必要です。 基本的にこれだけで十分だそうです(Unicode を扱うための Mule-UCS を入れた場合は追加設定が必要)。言語環境を "Japanese" にすると、Meadow は自動的に次のように設定するそうです(三好雅則さんの Meadow ページより)。 Meadow での入力方式として Windows IME を指定したので、C-\ で Windows の日本語 IME の ON/OFF を切り替えられるようになります(C-\ には toggle-input-method というコマンドが割り当てられている)。IME の ON/OFF に応じてモードライン左端の記号が変化します。OFF のときは丸印、ON のときは縦棒です。これはチトわかりづらいので、後ほど変更方法を紹介します。 C-\ したときに、Meadow に付属の Input Method が起動する(Windows の IME がトグルしない)ようでしたら、設定の順番が間違ってないか確認してください。 Windows の IME を使うよう設定すると、IME の ON/OFF に応じてモードラインの表示が次の図のように変化します。 IME が OFF のときは丸印、ON のときは縦棒になっています。これは非常に分かりづらい(丸印 = ON と間違えやすい)ので、ON のときは [あ]、OFF のときは [--] となるように設定を変更してみます。 カーソル設定のところで、IME の ON/OFF に応じてカーソルの色か高さを変える設定を紹介しているので、そちらもご覧あれ。 変更を加えたバッファを保存せずに終了しようとしたときなど、何か重要な(or 致命的な)操作をするとき、Meadow は「ホントにやってもいい?」と警告・問い合わせを出してきます。Meadow からの問い合わせに対し、ユーザは yes/no や y, n など、キー入力で応えることになります。 このとき IME が ON になっていると、"y" と叩いても日本語入力の未確定状態になってしまい、半角英数に変換するとか、いったん未確定文字を削除し、IME を OFF にしてから "y" と打たなければなりません。 このように、yes/no など半角英数で応えなくてはいけない状態になったら、自動的に IME が OFF になってくれると便利です。次のようにします。 プログラムのソース内のキーワードや予約語、HTML 文書のタグなどを色分けして表示するなんてのはエディタとして当たり前の機能でしょうか。Meadow(Emacs) にも、フォントロック(font-lock)モードという、色分け・ボールド・イタリックなどの強調表示をしてくれるマイナーモードがあります。 Meadow 1.14 付属の設定ファイルを使ったのであれば、次のような設定が書かれているので、フォントロックモードが有効になっているはずです。 そうでない場合は、M-x font-lock-mode でフォントロックモードを ON/OFF できるので、ON にしてから ".emacs" ファイルを開いて見てみましょう。Emacs Lisp の構文に従って色付けされるはずです。 特定のモードでのみフォントロックを有効にするには、各モードの hook を利用して次のように書いておきます。 フォントロックには、大きなバッファで色づけが早くなるよう fast-lock-mode と lazy-lock-mode という 2 種類のモードが用意されています。どちらも一長一短らしいですが、詳しいことは Info を読んでください。 Windows などのウィンドウ・システムでいう「ウィンドウ」のことを、Meadow(Emacs) の世界では『フレーム』と呼びます。また、Emacs のフレーム内での画面分割のことを『ウィンドウ』と呼びます。 ここでは、フレームのサイズ・位置、背景色・文字色、カーソル、スクロールバーやメニューバーの有無、フォントの指定方法、ウィンドウ分割、ミニバッファ・ウィンドウなどのカスタマイズ方法を紹介します。 フレームのサイズ・位置、背景色・文字色、フォントなど、フレームの各種パラメータと値(初期値)は、次のように default-frame-alist で設定します。 コピー&ペーストする場合はいいのですが、自分で書き換える場合は、クォーテーションマーク、パラメータと値の間のピリオド、そのピリオドの前後の空白などに注意してください。色名も二重引用符で囲む必要があります。 フレームのサイズを縦横の文字数で指定できます。ピクセル値ではないので注意してください。横幅は桁数、高さは行数です。 フレームの位置をピクセル単位で指定できます。フレーム左上隅の座標で指定します。left が x 座標、top が y 座標です。デスクトップ上の座標は、左上を原点、右下方向をプラスとします。 垂直スクロールバーを右側に表示するか左側に表示するかを設定できます。この後のスクロールバーのところで、スクロールバーを表示しない設定を紹介しています。 カーソルの種類・高さ・色をカスタマイズすることができます。高さと色は、カーソルの種類によっては変更できない場合があります。カーソルに関しては別のところで詳しく解説しています。IME の ON/OFF でカーソル色を変えるよう設定した場合は、デフォルトのカーソル色と IME OFF 時のカーソル色をあわせておきましょう。 表示用の「フォントセット」と Windows IME で入力する際の「フォント」を設定できます。「MS ゴシック」といった Windows でのフォントの名前ではなく、Meadow における「フォントセットの名前」「フォントの名前」でないといけません。フォントセット設定の話は長くなるので、別の文書で紹介しています。 表示用のフォントセットは、Shift キーを押しながらバッファをクリックして出てくるメニューから随時変更することができます。 Meadow(Emacs) ではキーボードから全ての操作が可能なので、慣れてくるとメニューバーが邪魔に思えてくるかもしれません。メニューバー無しにするには、".emacs" に次のように書きます。関数 menu-bar-mode は引数が正ならメニューバーを表示し、そうでないならメニューバーを非表示にします。 Meadow では、普通の Windows アプリケーション同様、スクロールバーはデフォルトで右側に表示されます。右側で問題ないと思うのですが、X 上の Emacs では左側がデフォルトなので、中には左側じゃないとダメだという人がいるかもしれません。右か左か、表示位置は default-frame-alist で設定します。 Meadow(Emacs) では意外とスクロールバーは使わないものなので消してしまっても困らないかもしれません。スクロールバーを非表示にするには ".emacs" に次のように書きます。scroll-bar-mode の引数が正の数値なら表示、そうでないなら非表示になります。 本家 Emacs でスクロールバーを右側にする設定は、井上さんのEmacs 20 情報:スクロールバーを参照してください。 モードラインにカーソル位置の行番号と桁番号を表示させることができます。行番号はデフォルトで表示されます。 表示したい場合は t, 表示したくない場合は nil とします。M-x line-number-mode, M-x column-number-mode で表示・非表示を切り替えることができるので、どんな感じか先に確認してみるといいでしょう。 default-frame-alist で、カーソルの種類・高さ・色の初期値を設定できます。高さ・色は、カーソルの種類によってどちらか一方のみを変更できます。 カーソルの種類によって、高さ・色どちらをカスタマイズできるかが異なります。次の表のようになっています。caret 型かどうかで判断することができるかと。 カーソルの種類(cursor-type)が box か bar の場合、カーソルの色を変更することができます。default-frame-alist で設定します。使える色に関しては Meadow で使える色 を参照してください。 また、set-cursor-color という関数も用意されています。この関数を用いれば、IME の ON/OFF に応じてカーソルの高さを変えるような設定が可能です。 カーソルの高さは 0, 1, 2, 3, 4 の 5 種類の中から選べます。1-4 はフォントの高さの n/4 を意味します。0 は特別で、「画面のプロパティ」で設定した「アクティブウィンドウの境界の幅」になるそうです。カーソルの高さを変更できるのは、カーソルの種類(cursor-type)が caret, checkered-caret, hairline-caret の場合(caret 型の場合)に限られています。 また、set-cursor-height という関数も用意されています。この関数を用いれば、IME の ON/OFF に応じてカーソルの高さを変えるような設定が可能です。 IME の ON/OFF 状態は、IME のバーやタスクトレイ、Meadow のモードラインに表示されますが、ON か OFF か確認するのに、カーソル位置(入力位置)から視線を動かす必要があるため不便です。IME の ON/OFF に応じてカーソルに変化を付ければ、目を離すことなく現在の状態を確認することができ便利なはずです(参考:川村渇真「文字入力モードの切り替えと表示」)。 ".emacs" に次のように書いておくと、Windows IME の ON/OFF に応じて、カーソルの色か高さが変わります。色・高さのどちらが変わるかは、前述のように、カーソルの種類(cursor-type)によります。IME OFF の場合のカーソルの色・高さは、default-frame-alist で指定する初期値と同じものにしておきましょう。 カーソル色の変化は、カーソルの種類が box, bar の場合に限られます。ただし、bar は細い棒なので、色の変化がそれほどわかりやすくありません。box がおすすめです。 マウス(ポインティングデバイス)は便利なものだと思いますが、キーボード操作をしているとき、文字を入力しているとき、バッファ内を眺めているときには、マウスカーソルが邪魔になることがあります。 Meadow 1.14 から、不要なときにマウスカーソルが消えるよう設定できるようになりました。X Window System でいうところの "unclutter" 機能と同じとのことです(X はよく知りませんが、README.Meadow.ja にそう書かれていました)。カーソルを消すタイミングとして、キー入力を始めた時点と、マウスカーソルを静止させてから一定時間経過後の 2 つがあります。 マウスカーソル静止後一定時間で消すには次のようにします。ただし、この機能は Windows 98/2000 以降でしか正しく動作しないということなので、Windows 98/NT4.0 ユーザは注意しましょう 最近は、ホイール付きのマウスが主流でしょうか。Meadow は最初からマウスのホイールに対応しており、クルクル回してスクロールさせることができます。また、マウスカーソルをモードライン上に置いてホイールをクルクルさせると、モードラインを上下移動させることができます(モードラインをドラッグしても同じことができます)。 マウスカーソルがスクロールバーの上にあると、クルクルしてもスクロールさせることはできません。スクロールバー上にマウスカーソルがある場合、ホイールクルクルの信号が Meadow に伝わらないそうで、Windows/Meadow の仕様なので、そーゆーもんだと思って諦めてください。 あるキー操作に対しコマンドを割り当てる場合は、既に他のコマンドがそのキー操作割り当てられていないか調べた方がよいでしょう。次の 4 つのヘルプコマンドが役に立つでしょう。 C-h c に続けてキー入力をすると、そのキー操作に割り当てられたコマンドの名前が表示されます(describe-key-briefly)。 C-h k に続けてキー入力をすると、割り当てられたコマンドの名前と、より詳しい情報を表示します(describe-key)。 【豆知識】 このようなヘルプに関する説明は C-h ? で見ることができます(help-for-help)。 デフォルトでは、C-h は help-command に割り当てられており、C-h i で Info 読んだりするときに使います。C-h を shell などと同様にバックスペース(前の文字を削除)にするには、".emacs" に次のように書きます。 C-h でヘルプが呼べなくなりますが、f1 キーもデフォルトで help-command になっているのでこちらを使います。あるいは、次のようにして別のキーに help-command を割り当ててもいいと思います。 Emacs には auto-fill(自動詰め込み)というマイナーモードがあります。通常のテキスト(自然言語)やメールを書くときなどによく使われる、「70 文字で改行、整形」といったやつです。 text-mode-hook を使うと、テキストモードを拡張した他のモードでも自動的に auto-fill が有効になってしまったような気がします。そーゆー場合は、各モードのフックを利用して ON/OFF させましょう。 折り返し桁数(一行あたり何文字で改行・整形させるか)の初期値は、次のようにして設定します。バッファごとに桁数を変更できるので、setq-default で初期値を設定します(setq ではありません)。 最近のエディタやメーラならどれでも、文中の URL をクリックしてブラウザやメーラで開くことができるようになっています。Emacs でいわゆる「クリッカブル URL」機能を実現するのが browse-url です。 Emacs には shell-mode というメジャーモードがあり、Emacs のバッファ内でコマンドプロンプトや bash, tcsh などのシェルを動かすことができます。また、外部コマンドを実行する shell-command というものもあります Windows 上に疑似 UNIX 環境を構築する Cygwin をインストールして、シェルに bash を使う場合は次のようにします。Cygwin の bin ディレクトリにパスをとおしておきましょう。 Emacs(Meadow) では、一番下の行で next-line(C-n や↓)すると、行き止まりをものともせず、新しい行を作って、カーソルが一つ下に移動します。Windows の普通のエディタだと、最終行で↓しても新しい行は作られず、カーソルは最終行で止まります。Meadow でもそーゆー風にするには、next-line-add-newlines を nil にします。 バッファの最初の行で previous-line(C-p, ↑)すると、ミニバッファに「beginning-of-buffer」と表示され警告音がなりますが、次のように書くことで警告を出さないようにすることができます。 C-k(kill-line) は、カーソル位置から現在行の残り(行末まで)をカット(kill)するコマンドです。通常では、行末の改行は kill されずに残ります。次のような感じです。(■がカーソル、ポイントの位置を表す) なお、C-k は、現在行のカーソル位置から後ろだけを kill するので、行全体を kill したい場合は、C-a で行頭に移動してから C-k しませう。 このようにしておくと、Meadow をどこで起動しても、C-x C-f などしたときにホームディレクトリから始めることができます。Meadow のショートカットの作業ディレクトリを %HOME% とした場合は、ショートカットから起動したときしか有効になりませんが、この方法だと、MS-DOS プロンプトで別のディレクトリで起動させてもホームディレクトリから始まるようになります。 Meadow では無効な操作をしたときや C-g(キャンセル, abort)したとき、エコー領域にメッセージを表示するだけでなく、警告音を鳴らします。この警告音を別の音に変更したり、鳴らないようにすることができます。 残念ながら、サウンドファイルを直接指定することはできません。SOUND を nil にすると通常のビープ音がなります。それ以外は、システムで設定している音が鳴ります。 (どれがどの音に対応しているかは、そのうち表を作ります。Emacs 21 ベースになったら、wav ファイルを指定できるようになったりしないかなぁ……、どうだろう?) こうすると、警告音が鳴らなくなり、かわりに Meadow のフレームがパッと瞬きます(タイトルバーが一瞬だけ非アクティブ色になる)。とりあえず、一度試してみてください。 |