[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16. さらに Meadow をいじろう (2005/03/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=config"
"MeadowMemo/さらにMeadowをいじろう"へのコメント(無し)
検索全文Elisp


この章で紹介していること

個人的には,ここと15. 基本的な設定 (2008/04/16)の設定は必須かなと思ってます.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.1 モードラインをカスタマイズ (2004/02/03)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=custom%20modeline"
"MeadowMemo/モードラインをカスタマイズ"へのコメント(無し)
検索全文Elisp

まずは, モードラインに時間を表示する方法から. 以下を .emacs に追加してください.

 
(setq display-time-string-forms
  '((substring year -2) "/" month "/" day " " dayname " " 24-hours ":" minutes))
(display-time)

こういう設定をいれていくとモードラインが長くなってしまうので, こんなことをしてシェ イプアップしています.

モード名を短くするための設定です.

 
;; Encoded-kb はいらない
(eval-after-load "encoded-kb"
  '(setcar (cdr (assq 'encoded-kbd-mode minor-mode-alist)) ""))
;; Isearch は表示しなくてよい
(add-hook 'isearch-mode-hook
          '(lambda () (setcar (cdr (assq 'isearch-mode minor-mode-alist)) "")))
;; Texinfo も長い
(add-hook 'texinfo-mode-hook
          '(lambda ()
             (setq mode-name "Texi")))
;; scratch バッファの Lisp Interaction も長い
(add-hook 'lisp-interaction-mode-hook
          '(lambda ()
             (setq mode-name "Lisp-Int")))
;; Emacs-Lisp も長い
(add-hook 'emacs-lisp-mode-hook
          '(lambda ()
             (setq mode-name "Elisp")))

さらに, SKK を使っていると必要性を感じないので15.3.10 IME に連動してカーソルの色を変える (2004/01/15)で設定した ものを以下のように変更しています.

 
(setq-default mw32-ime-mode-line-state-indicator "")
(setq mw32-ime-mode-line-state-indicator-list '("" "" ""))

ついでに SKK の状態表示も

 
(setq skk-latin-mode-string "a")
(setq skk-hiragana-mode-string "あ")
(setq skk-katakana-mode-string "ア")
(setq skk-jisx0208-latin-mode-string "a")

として短くしてます.

16.1.1 マイナーモード表示をカスタマイズ − diminish (2003/04/13)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.1.1 マイナーモード表示をカスタマイズ − diminish (2003/04/13)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=diminish"
"MeadowMemo/マイナーモード表示をカスタマイズ−diminish"へのコメント(無し)
検索全文Elisp

何が問題なのか?

マイナーモード表示の設定は結構面倒.

何ができるのか?

マイナーモード表示を簡単に消したり,短くしたりできる.

インストール方法は?

http://www.eskimo.com/~seldon/ よりダウンロードして,ロードパスの通ったと ころへ置くだけです.

設定方法は?

 
(require 'diminish)

詳しい使い方は?

上記に加えて,以下を参考に設定すると,モードライン表示をカスタマイズすることがで きます.

 
;; 表示を変更
(diminish 'abbrev-mode "Abv")
;; 表示を消す
(diminish 'abbrev-mode)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.2 ファイルに色をつけよう − font-lock (2003/07/12)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=font-lock"
"MeadowMemo/ファイルに色をつけよう−font-lock"へのコメント(2007/12/28)
検索全文Elisp

何が問題なのか?

デフォルトのままでは,コメントや文字列なども普通のテキストと同じなので,分かりに くい.

何ができるのか?

font-lock (フォントロック) とはある特定部分に対して, それらの構文上の役割に応じ た属性`face'を自動的に付加する機能のことです. 例えば C のソースファイルのコメン トに色がついたり, HTML のタグに色がついたりといった効果があります. Emacs lisp ならこのページのようにコメントなどに色がつくようになります.

インストール方法は?

Meadow に附属してます.

設定方法は?

font-lock モードを用いた色付けは多少時間がかかるので (といっても大した時間ではあ りませんけど), lazy-lock モードに設定しておくのがお勧め. lazy-lock-mode はある条 件が満たされたときにだけ highlighting をするので, 多少時間が少なくてすみます.

最新の Meadow では jit-lock-mode が実装されました.これは, lazy-lock-mode よりも動作 が速いものです.

 
(if window-system
    (global-font-lock-mode t) ;; フォントロックを使用する
  )

(setq font-lock-support-mode
      '((emacs-lisp-mode . jit-lock-mode) ;; モードによって切りかえたい時
        (c++-mode . fast-lock-mode)
        (t . jit-lock-mode))) ;; デフォルト
;;コメントの色
(set-face-foreground 'font-lock-comment-face "medium purple")
;;name の色
(set-face-foreground 'font-lock-function-name-face "LightSkyBlue")

詳しい使い方は?

ファイルを開くだけで色が付きます.

色が付かない場合には,モードラインを確認してください.「 Fundamental 」となってい れば,適当なモードになっていませんので,適当なモードを探す必要があります.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.3 タブ幅の設定 (2004/02/18)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=tab%20width"
"MeadowMemo/タブ幅の設定"へのコメント(無し)
検索全文Elisp

以下の設定でタブ幅の設定ができます.

33. テキスト編集のためのモード/機能 (2007/12/26)も参考にしてください.

 
;;タブ幅を 4 に設定
(setq-default tab-width 4)
;;タブ幅の倍数を設定
(setq tab-stop-list
  '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))
;;タブではなくスペースを使う
(setq-default indent-tabs-mode nil)
(setq indent-line-function 'indent-relative-maybe)

各モードごとに設定するにはフックを用いて行います.

C の字下げならば

 
(add-hook 'c-mode-common-hook
          '(lambda ()
             (c-set-style "GNU")
             (setq c-basic-offset 4)))

とすればできます.この "GNU" は字下げなどのスタイルです.標準では他に "K&R", "BSD","C++","Whitesmith" が用意されてますので,必要に応じて選択してください.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.4 カーソル位置の表示 (2003/06/27)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=cursor%20position"
"MeadowMemo/カーソル位置の表示"へのコメント(無し)
検索全文Elisp

以下を設定すると,モードラインにカーソルの行数などを表示できます.

 
;;モードラインにカーソルがある行の行数を表示
(line-number-mode 1)
;;モードラインにカーソルがある位置の文字数を表示
(column-number-mode 1)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.5 段落の設定を変更する ― auto-fill (2003/06/27)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=danraku"
"MeadowMemo/段落の設定を変更する―auto-fill"へのコメント(2007/12/28)
検索全文Elisp

メールでは相手がどのような環境で読むか分かりません.そのため,ある程度の文字数で 折り返すのがマナーになっています.

しかし,手で折り返していくと,

メールでは相手がどのような環境で読むか
分かりません.そのため,ある程度の文字数で折り返す
のがマナーになっています.しかし,
手で折り返すと,
右端がガタガタになってしまうんですよね...

といった風に,文章を追加した行は長くなり,カットした行は短くなってしまい,改行を やり直す必要があります.

これは,文章が長くなってくると結構面倒な作業です.そこで,便利な機能があります.

M-q を入力すると段落ごとに整形できます.例えば,上の文だと,

メールでは相手がどのような環境で読むか
分かりません.そのため,ある程度の文字
数で折り返すのがマナーになっています.
手で折り返すと,右端がガタガタになって
しまうんですよね...

という風に,整形してくれます.何文字目で折り返すかは,以下の様に設定することで変 更できます.

 
(setq fill-column 60)

しかし,デフォルトでは行が長くなっても折り返されず,どんどん続いていきます.これ を,上で設定した文字数になったら自動的に改行するようにできます.そのためには,

 
(turn-on-auto-fill)

あるいは

 
(auto-fill-mode 1)

と設定します.ただし,これらはモード毎に設定する必要があります.

例えば

 
(add-hook 'text-mode-hook
          '(lambda ()
             (setq fill-column 60)
             (auto-fill-mode 1)
             ))

のように設定します.あるいは,ファイルを開いてから,M-x auto-fill-modeとし てもできます.もう一度,M-x auto-fill-modeとすれば無効になります.

そうすると,一行の文字数が指定した長さを越えると自動的に改行されます.改行した状 態で編集して右端が.がたがたになってしまったら,M-qとすれば指定した文字数 で折り返し直してくれます.

また, M-q による整形はデフォルトでは改行のみの行を段落の区切りと見なします. しかし,日本語では行頭のスペースも段落区切りとして,よく使いますね.そこで,以下 のように設定しておくと便利です.

 
(setq paragraph-start '"^\\([  ・○<\t\n\f]\\|(?[0-9a-zA-Z]+)\\)")

日本語だと,これでいいのですが,英語だと以下のように右端が揃わず,不格好になって しまいます.

  The licenses for most software are designed to take away your freedom to share
and change it.  By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users.  This General Public License applies to most
of the Free Software

そこで,C-u M-qとします.そうすると,

  The licenses for most software are designed to take away your freedom to share
and  change it.   By contrast,  the GNU  General Public  License is  intended to
guarantee  your freedom  to share  and change  free software--to  make  sure the
software is free for all its users.  This General Public License applies to most
of the Free Software

のように右端を揃えてくれます.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.6 自動的に指定した文字数で折り返す ― refill (2003/05/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=auto%20danraku"
"MeadowMemo/自動的に指定した文字数で折り返す―refill"へのコメント(無し)
検索全文Elisp

さて,ここまでで説明した「 auto-fill-mode 」は,M-qとしない限り,段落の整 形が行われません.そこで,文字を追加するたびに,自動的に再整形してくれるものがあ ります.それが,「 refill.el 」です,

これは, Meadow 1.99 以降には標準で附属していますので,M-x refill-modeとす るだけで,使うことができます.

そうすると,長くなると自動的に折り返されます,さらに,文章を追加したり,カットし たりしても,自動的に再整形されますので,ワープロのように常に右端が揃った状態にな ります.

設定する時には,以下のように設定します.テキストを編集する時に便利です.

 
(add-hook 'text-mode-hook
          '(lambda ()
             (refill-mode 1)
             ))

ただし,この refill-mode は SKK を使っていると少し不便です.というのは,カーソル が右端にある時に「少し」と変換しようとすると,「▽ s うこし」となってしまうので す.

この挙動は,「 fill-nobreak-predicate 」を設定すると,避けることができそうです. これは,

 
(setq-default fill-nobreak-predicate 'refill-skk-ignore)
(defun refill-skk-ignore ()
  (interactive)
  (if
      (or
       skk-henkan-mode
       skk-current-rule-tree)
      t
    nil))

のように関数を設定します.これで,少しはましになる.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.7 リージョンをカスタマイズしよう (2005/03/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=region%20custoze"
"MeadowMemo/リージョンをカスタマイズしよう"へのコメント(無し)
検索全文Elisp

ここでは,リージョンに関連するカスタマイズを紹介します.リージョン関連として他に 32.3 矩形処理 (2003/11/14) もあります.

16.7.1 リージョン部に色をつける & リージョン部のみ置換 (2005/03/20)  
16.7.2 カーソルキーでリージョンを選択 (2003/11/05)  
16.7.3 リージョン内の文字を BS で消す (2003/11/05)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.7.1 リージョン部に色をつける & リージョン部のみ置換 (2005/03/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=region%20color"
"MeadowMemo/リージョン部に色をつけるリージョン部のみ置換"へのコメント(無し)
検索全文Elisp
要約

現在のリージョンに色をつけることができる.

何が問題なのか?

マークをつけた位置と現在のカーソル位置の間にリージョンができます.しかし,明示的 には何も表示されないため,どこがリージョンなのかよく分かりません.

何ができるのか?

リージョンに色を付けることができます.transient-mark-mode(暫定マークモード)とい います.

ただし,これを使うと「リージョン」の動きが少し変化します.

従来であれば,リージョンは常に存在します.それは,通常,リージョンを消すような操 作が無いからです.

しかし,それでは,いつも強調表示されることになってしまいます.

そこで,暫定マークモードでは,文字入力などの操作を行った時には,リージョンが消さ れるようになっています.つまり,大抵の場合,リージョンは無いわけです.

設定済みMeadowでは

設定してあります.

インストール方法

標準的な機能ですので,インストールは不要です.

設定方法

以下を .emacs に追加します.

 
(setq transient-mark-mode t)

リージョンの色を変更する方法については See 節 15.3 画面表示 (サイズや表示色) の設定 (2004/11/13) を参考にしてください.

詳しい使い方

こうして,リージョンを設定すると,リージョンの色が変化するようになります.

それだけではありません.

暫定マークモードでリージョンを設定して,M-% で置換を行うとリージョン部だけ を置換できます.このように,暫定マークモードのリージョン内だけを対象に操作を行う コマンドは他にもあります.

カスタマイズ

暫定マークモードにおける色はカレントバッファのみに付きます.バッファを切り替える と以前のバッファの色は消えます.

バッファを切り替えても色はついたままの状態にするには,以下を.emacs に追加します.

 
(setq highlight-nonselected-windows t)

一時的に暫定マークモードを使う

暫定マークモードを通常は使いたくないので,設定はしたくない.だけど,リージョン内 を対象にコマンドを実行したい時があります.そのために,一時的に,暫定マークモード を有効にする必要があります.

そのためには,C-SPC C-SPCC-u C-x C-x と入力して,リー ジョンを設定します.すると,その時だけ,暫定マークモードでリージョンを設定できま す.

マーク箇所に色をつける

リージョンに色がつくのはうっとうしいという方は,以下を.emacs に追加し,M-x visible-mark-mode とするといいでしょう.これで,C-SPC でマークをつけた箇 所に色がつきます.

VisibleMark (EmacsWiki) より.

 
;; This was hacked together by Jorgen Schafer
;; Donated to the public domain. Use at your own risk.
(defgroup visible-mark nil
  "Show the position of your mark."
  :group 'convenience
  :prefix "visible-mark-")

(defface visible-mark-face
  `((((type tty) (class color))
     (:background "blue" :foreground "white"))
    (((type tty) (class mono))
     (:inverse-video t))
    (((class color) (background dark))
     (:background "blue"))
    (((class color) (background light))
     (:background "lightblue"))
    (t (:background "gray")))
  "Face for the mark."
  :group 'visible-mark)

(defvar visible-mark-overlay nil
  "The overlay used in this buffer.")
(make-variable-buffer-local
 'visible-mark-overlay)

(defun visible-mark-move-overlay ()
  "Move the overlay in `visible-mark-overlay'
 to a new position."
  (move-overlay visible-mark-overlay
                (mark)
                (1+ (mark))))

(define-minor-mode visible-mark-mode
  "A mode to make the mark visible."
  nil nil nil
  :group 'visible-mark
  (if visible-mark-mode
      (unless visible-mark-overlay
        (setq visible-mark-overlay
              (make-overlay (mark)
                            (1+ (mark))))
        (overlay-put visible-mark-overlay
                     'face 'visible-mark-face)
        (add-hook 'post-command-hook
                  'visible-mark-move-overlay))
    (when visible-mark-overlay
      (delete-overlay visible-mark-overlay)
      (setq visible-mark-overlay nil))))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.7.2 カーソルキーでリージョンを選択 (2003/11/05)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=pc%20selection%20mode"
"MeadowMemo/カーソルキーでリージョンを選択"へのコメント(無し)
検索全文Elisp

Windows のアプリケーションでは Shift + カーソルキーで範囲選択ができます. Meadow でも以下を追加するだけで同じようにリージョンを指定できます.

他にも

 
(pc-selection-mode)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.7.3 リージョン内の文字を BS で消す (2003/11/05)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=delete%20region"
"MeadowMemo/リージョン内の文字をBSで消す"へのコメント(無し)
検索全文Elisp

確認バージョン:Meadow 1.15 , Meadow 1.99

Windows では範囲を選択して BS とするとその範囲を消すことができます.これを Meadow で実現する方法です.

機能としては

の 2 つが考えられます.この両方が可能なのが最後の設定で,それ以外のものは, BSによる削除しかできません.

1 つは,

 
(defun delete-windows-like ()
  (interactive)
  (if mark-active
      (progn
        (delete-region (point) (mark)))
    (progn
      (delete-char 1)
      )
    )
  )

のように関数を作ってしまい,これをキーに割り当てる方法です.モードによって挙動を 変えたい場合に楽でしょう.もう一つは

 
(when transient-mark-mode
  (defadvice backward-delete-char-untabify
    (around delete-region-like-windows activate)
    (if mark-active
        (delete-region (region-beginning) (region-end))
      ad-do-it)))

のようにアドバイスを使う方法です.こちらは,キーバインドの変更は不要です.しかし, リージョン選択時にテキストを入力しても,リージョン内のテキストは消えません.

さらに,最新の Meadow であれば,

 
(delete-selection-mode 1)

を追加しても同じことが可能です.これであれば,リージョンを選択時に文字を入力して も,リージョン内のテキストが消えます.ただし,これまでの動作に慣れていると,思わ ぬところでリージョン間のテキストが消えてしまうことがあるので,ご注意を.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.8 便利に編集するための設定 (2003/11/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=edit%20config"
"MeadowMemo/便利に編集するための設定"へのコメント(無し)
検索全文Elisp

16.8.1 一行まるごとカット (2003/04/13)  
16.8.2 同一ファイル名のバッファ名を分かりやすく ― uniquify (2003/04/13)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.8.1 一行まるごとカット (2003/04/13)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=kill-whole-line"
"MeadowMemo/一行まるごとカット"へのコメント(無し)
検索全文Elisp

Meadow では C-k でカーソルから行末までの文字を一気に切り取りできます. ただ し, 改行は切り取りされずに残ります.

この時, 改行も含めて切り取りしたい時には以下を設定します.

 
(setq kill-whole-line t)

ただし,これはカーソル以前の部分はカットされません.そこで,以下のような設定を入 れておくと,M-k でカーソルより前の部分も含めてカットできます.

 
(defun kill-whole-line (&optional numlines)
  "One line is deleted wherever there is a cursor."
  (interactive "p")
  (setq pos (current-column))
  (beginning-of-line)
  (kill-line numlines)
  (move-to-column pos))

(define-key esc-map "k" 'kill-whole-line)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.8.2 同一ファイル名のバッファ名を分かりやすく ― uniquify (2003/04/13)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=uniquify"
"MeadowMemo/同一ファイル名のバッファ名を分かりやすく―uniquify"へのコメント(無し)
検索全文Elisp

何が問題なのか?

Meadow で同一の名前を持つファイルを複数開くと, バッファの名前には<2><3>... と番 号が振られます. しかし, これではどれがどれだかさっぱり分かりません.

何ができるのか?

バッファ名を <2><3>... ではなく, ディレクトリ名で表示してくれる.

例えば, C:/Meadow/.emacs.el, C:/tmp/.emacs.el を開いたとすると, それぞれ .emacs<Meadow>, .emacs<tmp>となりますので,どのファイルがどういうファイルかが分 かりやすくなります.

インストール方法は?

Meadow に附属しています.

設定方法は?

 
(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)

詳しい使い方は?

後は普通にファイルを開くだけです.

うまく動かない

これを使うと,うまく動かないものがでてきます.それは,バッファ名が変化することを 想定していないものがあるからです.そこで,以下のような設定を追加しておきます.

 
(setq uniquify-ignore-buffers-re "*[^*]+*")

この uniquify-ignore-buffers-re は uniquify でバッファ名を変更しないもの を正規表現で指定します.

この設定でほとんどのものは動くと思いますが,動かないものがあれば,必要に応じて編 集してください.

コメント

同じ名前のファイルを開いていなくても, 常にこのようなバッファ名にしたい時には, 以 下の設定をします.

 
(setq uniquify-min-dir-content 1)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.9 yes or no を入力したくない (2003/04/13)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=yesno%20yn"
"MeadowMemo/yesornoを入力したくない"へのコメント(無し)
検索全文Elisp

shell を起動したまま Meadow を終了したりすると,終了しますか? と聞かれ, yes か no と入力する必要があります.これって結構面倒ですよね.だって, 3 文字も入力しな いといけないですから,

だから,私は

 
(fset 'yes-or-no-p 'y-or-n-p)

としてます.これなら,SPC でも大丈夫だし,楽でいいです.ただし,不用意に SPC を押してしまうことがあり,ちょっと危険です.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

16.10 異なる Emacs で設定を共用する (2004/09/26)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=switch%20config"
"MeadowMemo/異なるEmacsで設定を共用する"へのコメント(2007/12/28)
検索全文Elisp
要約

Meadow や Emacs など,異なる Emacs で設定を共用する方法.

情報源

http://pc2.2ch.net/test/read.cgi/software/1056601345/510 Meadow について語っ てくれなスレ 3

何が問題なのか?

Meadow で使っている設定をそのまま Unix へ持っていくと大量にエラーが出てしまいます. かといって,別のファイルで管理するのも大変です.

何ができるのか?

1 個のファイルである部分は Meadow のみ,ある部分は XEmacs の設定という風に切り分ける ことができます.

詳しい使い方

大概の環境は以下の設定で識別できます.

 
(defvar run-unix
  (or (equal system-type 'gnu/linux)
      (equal system-type 'usg-unix-v)))
(defvar run-w32
  (and (null run-unix)
       (or (equal system-type 'windows-nt)
           (equal system-type 'ms-dos))))
(defvar run-emacs20
  (and (equal emacs-major-version 20)
       (null (featurep 'xemacs))))
(defvar run-emacs21
  (and (equal emacs-major-version 21)
       (null (featurep 'xemacs))))
(defvar run-meadow (featurep 'meadow))
(defvar run-meadow1 (and run-meadow run-emacs20))
(defvar run-meadow2 (and run-meadow run-emacs21))
(defvar run-xemacs (featurep 'xemacs))
(defvar run-xemacs-no-mule
  (and run-xemacs (not (featurep 'mule))))

後は必要に応じて,

 
(cond
 (run-meadow2
  ;; Meadow2 用の設定をここに書く
  (setq test t)
  )
 (run-xemacs
  ;; XEmacs 用の設定をここに書く
  (setq test nil)
  )
 )

という風に切り分けたり,

 
(when run-meadow2
  ;; Meadow2 用の設定をここに書く
  (setq test t)
  )

という風にある環境でのみ有効な設定を書いていきます.


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]