Personal tools
You are here: Home ブログ 井上 tempo.elで独自ボキャブラリXMLを書く使い捨てモード
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

tempo.elで独自ボキャブラリXMLを書く使い捨てモード

世の中、独自XMLボキャブラリを氾濫させるのは止めようと、誰もが思っているのに、独自XMLボキャブラリは後をたちません。

独自XMLボキャブラリを書くことになったら、使い捨ての自分XMLモードを作って楽をしましょう。tempo.elを使った例を示します。

tempo.el

コードの雛型は次のようになります(メジャーモードの作り方としてはやや変則的な部分がありますが、使い捨てなので許してください)。

(require 'tempo)
(defun my-xml-mode ()
  (interactive)
  (kill-all-local-variables)
  (setq mode-name "my xml")
  (setq major-mode 'my-xml-mode)
  (let ((my-xml-mode-map (make-sparse-keymap)))
    (define-key my-xml-mode-map "\M-\C-f" 'tempo-forward-mark)
    (define-key my-xml-mode-map "\M-\C-b" 'tempo-backward-mark)
    (define-key my-xml-mode-map "\C-c\C-lu" (tempo-define-template "ul" '("<ul>\n<li>" p "</li>\n" p "</ul>\n")))
    (define-key my-xml-mode-map "\C-c\C-li" (tempo-define-template "li" '("<li>" p "</li>\n")))
    ; add more
    (use-local-map my-xml-mode-map)))

add moreの部分に必要なパターンを書き加えます。上の例ではキーアサインをhtml-helper-mode.elに準拠しています。適当に好きなキーアサインにすることも可能です。XMLボキャブラリに応じて、何も考えずに適当に書き加えても動くのが良い点です。

キーアサインとタグの挿入を対応づけているだけです。上のコードだけ見ると、キーボードマクロとたいして変わらないように見えます。良い点は上記のテンプレート内の p の部分にカーソルが移動することと、tempo-forward-mark、tempo-backward-markで p の位置を順々に移動できることです。

上のmy-xml-modeを使って、次のXML断片を書くケースを考えます。

<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ul>

キー入力は次のようになります。

  1. C-u C-l u
  2. foo
  3. M-C-f
  4. C-u C-l i
  5. bar
  6. M-C-f
  7. C-u C-l i
  8. baz

コードの重複が悪であるように、キー入力の重複も悪です。3と4のステップの組み合わせは繰り返されているので、気になるなら、無くしてください。キーボードマクロが一番容易でしょう。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/xml-adhoc-mode/tbping

Re:tempo.elで独自ボキャブラリXMLを書く使い捨てモード

Posted by matsuyama at 2007-05-22 06:47
http://www.goodpic.com/mt/archives2/2007/02/emacs_snippetel_html.html

というのもあります。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.