[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
他のモードについては以下を参考にしてください.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メジャーモードのみ紹介します.
13.1.1 楽譜を書くモード― abc-mode (2004/01/27) 13.1.2 組み込みシステム用言語モード― ada-mode (2004/01/27)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
楽譜を書くためのモードの紹介.コマンドが入っていれば, 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-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 ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
組み込みシステム用のモード 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.1 数引数モード ― auto-arg-mode (2004/01/27) 13.2.2 読み込み専用ファイルの扱い (2004/02/02)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
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 ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Windows で読み込み専用にされたファイルは Meadow 上でも読み込み専用となり編集する ことができません.この場合,読み込み専用でない普通のファイルと同じように扱われて もうれしくありません.むしろファイル内容を見るということに特化したモードになって くれた方がうれしいでしょう.
そこで,.emacs に以下を追加します.そうすると,読み込み専用のファイルでは view-mode となりSPCによるスクロールなどが可能になります.
;; read-only なファイルは view-mode で見る
(setq view-read-only t)
|
また,読み込み専用を解除するには,モードラインにある「%%」を左クリックするか, C-x C-q や M-x toggle-read-only を利用します.
13.2.2.1 読み込み専用ファイルのモード ― readonly (2004/02/02)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
読み込み専用ファイルのためにモードを提供する.
読み込み専用ファイルのためのモードです.
readonly.el をダウ ンロードし,ロードパスの通ったところへ置きます.
以下を.emacs に追加します.
(require 'readonly) |
読み込み専用ファイルを開くだけです.eで読み込み専用属性の解除,SPCで スクロール,s で isearch などができます.
view-read-only は nil にしておきましょう.
個人的には view-read-only で十分かな.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
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 ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
などということがあります.しかし, 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 ""))) (mmm-add-mode-ext-class nil "\\.html?\\'" 'embedded-css) |
これで,ファイルを開いた時に,「