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

13. いろいろなモード (2004/02/02)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=misc%20mode"
"MeadowMemo/いろいろなモード"へのコメント(無し)


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

他のモードについては以下を参考にしてください.



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

13.1 メジャーモード (2004/01/27)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=major%20mode"
"MeadowMemo/メジャーモード"へのコメント(無し)

メジャーモードのみ紹介します.

13.1.1 楽譜を書くモード― abc-mode (2004/01/27)   
13.1.2 組み込みシステム用言語モード― ada-mode (2004/01/27)   



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

13.1.1 楽譜を書くモード― abc-mode (2004/01/27)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=abc-mode"
"MeadowMemo/楽譜を書くモード―abc-mode"へのコメント(無し)

要約

楽譜を書くためのモードの紹介.コマンドが入っていれば, Postscript や midi への変換も できる.

情報源
何が問題なのか?
何ができるのか?

X:1
T:Notes
M:C
L:1/4
K:C
C, D, E, F,|G, A, B, C|D E F G|A B c d|e f g a|b c' d' e'|f' g' a' b'|]

abc により楽譜を簡単に出力できる

のように出力できます.

インストール方法

abc-mode.el をダウンロードしロードパスの通ったところへ置きます.

設定方法

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

 
(autoload 'abc-mode "abc-mode" "Major Mode for ABC files" t)
(add-to-list 'auto-mode-alist '("\\.abc\\'" . abc-mode))

詳しい使い方

拡張子が abc のファイルを開くと abc-mode になります. abc2ps などのコマンドが入ってい れば,C-c C-cで Postscript へ変換できます.

メニューも追加されますので,これをいじるだけでも使うことができます.

うまく動かない

Windows だと変換しようとしてもうまくいかないかもしれません.どうもパスが「\」で渡っ ているためのようです.



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

13.1.2 組み込みシステム用言語モード― ada-mode (2004/01/27)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=ada-mode"
"MeadowMemo/組み込みシステム用言語モード―ada-mode"へのコメント(無し)
要約

組み込みシステム用のモード ada-mode の紹介.

何ができるのか?

Ada という言語用のモード.

詳しいことは調べてもらうとして,簡単に紹介すると,

1974 年にアメリカ国防総省の要請で 1974 年から開発が始められた言語.もともとは戦略機 器制御プログラムとして開発されたもの.ベースは PASCAL であり,リアルタイム制御機能 やオブジェクト指向などが組み込まれた.名前は世界初のプログラマと言われる Ada Augusta の名前を取って名付けられた.

例えば, Hello world は以下のようになります.

 
 with Text_IO; use Text_IO;

 procedure Hello is
 begin
    Put_Line ("Hello, world");
 end Hello;

インストール方法

標準で付属しています.

設定方法

特に必要ありません.

詳しい使い方

拡張子が adb (Ada Body) や ads (Ada Spec) のファイルを開くと ada-mode になります.

後はメニューが出ますので,それを参考にして使うといいです.

ヘッダの自動記入やプロジェクトの作成などなど様々な機能があります.



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

13.2 マイナーモード (2004/02/02)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=minor%20mode"
"MeadowMemo/マイナーモード"へのコメント(無し)

ここではマイナーモードを紹介します.

13.2.1 数引数モード ― auto-arg-mode (2004/01/27)   
13.2.2 読み込み専用ファイルの扱い (2004/02/02)   



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

13.2.1 数引数モード ― auto-arg-mode (2004/01/27)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=auto-arg-mode"
"MeadowMemo/数引数モード―auto-arg-mode"へのコメント(2007/12/28)
要約

C-u 21 C-f を 21 C-f のように簡単に入力できるようにする

何が問題なのか?

C-u 10 C-f など C-u 数字 をつけてコマンドを入力すると,そのコマンド を指定した回数だけ実行することができます.

しかし,頻繁に使うのであれば,C-uを何度も入力するのは面倒です.

何ができるのか?

C-u 21 C-f を 21 C-f のように簡単に入力できるようになります.

インストール方法

同等のもの (autoarg.el) が標準で付属していますので,そのまま使えばいいです.

設定方法

不要です.

詳しい使い方

M-x autoarg-mode でオンになります.これで,21 C-f とするだけで, C-u 21 C-f と同じ動作になります.

数字の入力は 21 SPC でできます.

うまく動かない

日本語入力との相性はよくありません. SKK だと,10 a で 10 個「あ」が出ます し,期待通りに動いているように見えます.しかし,日本語入力モードで SPC は 入力できません。

また, Windows の IME がオンになっていると,ほとんど動作しません.



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

13.2.2 読み込み専用ファイルの扱い (2004/02/02)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=readonly%20buffer"
"MeadowMemo/読み込み専用ファイルの扱い"へのコメント(無し)

Windows で読み込み専用にされたファイルは Meadow 上でも読み込み専用となり編集する ことができません.この場合,読み込み専用でない普通のファイルと同じように扱われて もうれしくありません.むしろファイル内容を見るということに特化したモードになって くれた方がうれしいでしょう.

そこで,.emacs に以下を追加します.そうすると,読み込み専用のファイルでは view-mode となりSPCによるスクロールなどが可能になります.

 
;; read-only なファイルは view-mode で見る
(setq view-read-only t)

また,読み込み専用を解除するには,モードラインにある「%%」を左クリックするか, C-x C-qM-x toggle-read-only を利用します.

13.2.2.1 読み込み専用ファイルのモード ― readonly (2004/02/02)   



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

13.2.2.1 読み込み専用ファイルのモード ― readonly (2004/02/02)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=readonly"
"MeadowMemo/読み込み専用ファイルのモード―readonly"へのコメント(無し)
要約

読み込み専用ファイルのためにモードを提供する.

何ができるのか?

読み込み専用ファイルのためのモードです.

インストール方法

readonly.el をダウ ンロードし,ロードパスの通ったところへ置きます.

設定方法

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

 
(require 'readonly)

詳しい使い方

読み込み専用ファイルを開くだけです.eで読み込み専用属性の解除,SPCで スクロール,s で isearch などができます.

うまく動かない

view-read-only は nil にしておきましょう.

コメント

個人的には view-read-only で十分かな.



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

13.3 複数のメジャーモードを使う (2004/01/27)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=multi%20major"
"MeadowMemo/複数のメジャーモードを使う"へのコメント(無し)

Meadow は必ず何らかのメジャーモードになると説明しました.例えば,*scratch*バッファ なら, lisp-interaction-mode ,テキストなら text-mode になります.しかし,実際の 編集では,こんなに簡単に切り分けられるものではありません.例えば,テキスト中に lisp のサンプルを書きたいなどということはよくあります.しかし, Meadow では利用 できるメジャーモードは 1 つですので,テキストモードと他のモードを手動で切り替え たりしながら使うことになります.

そこで,ここでは,複数のメジャーモードを利用するための Elisp を紹介します.

2 種類紹介しますが, mmm-mode の方が機能も豊富で使いやすくお勧めです.

13.3.1 複数のメジャーモードを共存 ― mmm-mode (2003/07/01)   
13.3.2 複数のメジャーモードを切り替える ― multi-mode (2003/06/17)   



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

13.3.1 複数のメジャーモードを共存 ― mmm-mode (2003/07/01)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=mmm-mode"
"MeadowMemo/複数のメジャーモードを共存―mmm-mode"へのコメント(2007/12/28)

などということがあります.しかし, C のサンプルソースを書くために, c-mode にすると, C を書くにはいいですが, HTML を書くためにはまたモードを戻す必要があります.

そうなると,今度は C の色が消えてしまい, C のソースが見辛くなってしまいます.

そこで, mmm-mode という複数のメジャーモードを使うための Elisp があります.これを使 うと,特定の範囲は c-mode ,それ以外は HTML のモードにすることができます.

使うためには,mmm-modeからダウン ロードし,解凍します.そして, bash を起動し,

cd mmm-mode
EMACS=meadow ./configure
make

として,コンパイルをします.

これができなければ, dired で開いて拡張子が el のファイルにmでマークをつけて, Bとしてコンパイルしてもかまいません.

後は,フォルダごと site-lisp へ移動します.

そして,以下の設定を追加します.

 
;; mmm-mode
(require 'mmm-mode)
(setq mmm-global-mode 'maybe)
;; 色設定.これは,好みで.色をつけたくないなら nil にします.
(set-face-background 'mmm-default-submode-face "navy")

これで,M-x mmm-mode-onとすると, mmm-mode になります.

ある範囲をあるモードにしたい場合には,その範囲をリージョンで選択して,C-c % C-r(M-x mmm-ify-region) とします.そうすると,その範囲が指定したモードに なります (背景色は「 mmm-default-submode-face 」で設定できます) .

このモードはリージョンを選択し,C-c % C-k(M-x mmm-clear-current-region) とすると消すことができます.

ただ,この方法では,そのモードにするために,毎回リージョンを選択しないといけない ので,かなり面倒です.

そこで, mmm-mode には自動でモードを変更する場所を探し,適当なモードにするための 仕組みがあります.

例えば, HTML に CSS を挿入する場合を例に取ります (ただし,実際にするためには css-mode が必要) .

HTML 中に CSS を書く場合,


といった風に 「」みたいに単に文字だけでもいいです.

そして,「 mmm-add-mode-ext-class 」の行が,拡張子が「 html 」のファイルでこの 「 embedded-css 」という設定を使うという意味になります.

 
(mmm-add-classes
 '((embedded-css
    :submode css-mode
    :front "]*>"
    :back "")))

(mmm-add-mode-ext-class nil "\\.html?\\'" 'embedded-css)

これで,ファイルを開いた時に,「