html-helper-mode, js2-mode のMeadow3への導入
Javascriptを勉強しています。
勉強する物ではない,とかいうつっこみは勘弁してください。
なので,ぼちぼち環境を整えようと思います。
Meadow3 に導入した際のメモ。
まずは簡単な方から。
js2-mode
ref: http://d.hatena.ne.jp/m-hiyama/20080627/1214549228
ここを参考にするのがいいです。
http://code.google.com/p/js2-mode/ からダウンロード。
導入方法もファイルの中身を見れば書いてありますね。
;; for js2-mode (autoload 'js2-mode "js2" nil t) (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) (add-hook 'js2-mode-hook '(lambda () (setq js2-basic-offset 4) (setq tab-width 4) (setq indent-tabs-mode nil) ; タブを無効に (setq js2-enter-indents-newline nil) ; C-mでインデントしないように (setq js2-mirror-mode nil) ; (, { とかを入力した際,対応する括弧とかを自動的に挿入しない。 (make-variable-buffer-local 'skeleton-pair) ; 対応する括弧の挿入は,skeletonにおまかせしておく。 (make-variable-buffer-local 'skeleton-pair-on-word) (make-variable-buffer-local 'skeleton-pair-alist) (setq skeleton-pair-on-word t) (setq skeleton-pair t) (local-set-key (kbd "(") 'skeleton-pair-insert-maybe) (local-set-key (kbd "[") 'skeleton-pair-insert-maybe) (local-set-key (kbd "{") 'skeleton-pair-insert-maybe) (local-set-key (kbd "`") 'skeleton-pair-insert-maybe) (local-set-key (kbd "\"") 'skeleton-pair-insert-maybe)))
これでおしまい,チャンチャンというわけにはいかなかったのです。
Javascriptのファイルを開いてもJavascriptモードになってしまうです。
原因は,Meadowのインストールディレクトリ/packages/pkginfo/javascript/auto-autoloads.el。
このファイルの中身を下記のようにコメントアウトや!!
;(add-to-list 'auto-mode-alist (cons "\\.\\(js\\|as\\|json\\|jsn\\)\\'" 'javascript-mode))
うす。以上です。
html-helper-mode
コレが大変だったアルよ。
準備
まず,最初から入っている html-helper-mode に冬眠してもらう。
Meadow3のインストールディレクトリ/packages/pkginfo/html-helper-mode/auto-autoloads.el
の中身を全てコメントアウト。
参考ページ
http://www.emacswiki.org/emacs/HtmlHelperMode
こっからダウンロードしてくるアルよ。
http://ftp.twaren.net/Unix/NonGNU/baol-hth/
ワタシは"html-helper-mode_3-0-4jolly.tar.gz"にしたアルね。
あと,色付けするために,
http://www.nbi.dk/TOOLS/emacs/lisp/html-font.el
をダウンロードするヨ。
以下を.emacsに追記するネ。
;; for html-helper-mode (autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t) (add-to-list 'auto-mode-alist '("\\.html$" . html-helper-mode)) (add-hook 'html-helper-mode-hook '(lambda () (font-lock-mode 1)))
色付け表示させるために,はまったとです。
以下,html-font.el から抜粋して,whitypigさんのコメントを追加。
;; Installation, currently: ;; 1) Put html-font.el in your load-path and `M-x byte-compile-file' it. ;; 2) Add this to your ~/.emacs (without the ";;" in front): ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; はじめ↓を試したけど,だめだったっす。 (add-hook 'html-helper-load-hook '(lambda () (require 'html-font))) ;; Customize font-lock as you would do for any other major mode. ;; For XEmacs and Emacs 19.29, default colours are set up automatically. ;; For earlier Emacsen, you have to write a lot yourself (or get it from ;; somewhere else, e.g. Simon Marshall's face-lock.el in the LCD; see also ;; http://www.nbi.dk/~dickow/emacs/), for example: ;; 3) To have a colourful display with font lock in any supported major mode, ;; you can add something like this to your ~/.emacs: ;; (copy-face 'bold 'font-lock-keyword-face) ; or italic/... ;; (set-face-foreground 'font-lock-keyword-face "ForestGreen") ;; (setq font-lock-keyword-face 'font-lock-keyword-face) ;; and similary for `font-lock-string-face' etc. (see font-lock.el). ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ほいで,↓を試したら,おっけー牧場だったわけです。 ;; 4) To have font-lock turned on every time html-helper-mode is entered do ;; (訳) html-helper-mode になる度に,font-lock をオンにしたいなら,↓のようにしな! (add-hook 'html-helper-mode-hook '(lambda () (font-lock-mode 1)))
これで,色付け表示の問題はクリアー!
が,こっからが長かったんですわ。
でも,試行錯誤した過程は,カット!
エコエコエコですわ。
ほんとは,html-helper-mode 中に,Javascriptを編集する際は,
js2-modeになって欲しくて,ごにょごにょしたけど,
scriptタグを認識してくれなかったり,インデントがずれたり,
色が付かなかったりしたので,却下。
で,java-mode に落ち着きました。
ちなみに,html-helper-mode.el の2327行目あたりの
関数?に変更を加えれば,そのやり方の是非はどうかしらんが,
一応,js2-modeになります。
(defun html-script-narrow-to-javascript () "Narrows to a JavaScript script and setups java mode" (interactive) (search-backward-regexp "<SCRIPT[ \t]+\\(LANGUAGE=\"JavaScript\"\\|TYPE=\"text/javascript\"\\)[ \t]*>") (let ((beg (point))) (search-forward "</SCRIPT>" nil t) (narrow-to-region beg (point))) (cond (html-helper-mode-uses-JDE (jde-mode)) ; (t (java-mode))) (t (js2-mode))) ;; こうすれば,js2-mode に成ってくれるっす。 (goto-char 0))
使い方のTips
Javascriptの編集に入りたかったら,scriptタグの中で,
M-x html-script-toggle-narrow
これで,ナローイングされます。
ほいで,編集終わって widen して,html-helper-mode に戻る場合は,
M-x html-script-release-region
すれば,ナローイングが解除されます。
・・・。
なーんつって。
この上記2つのコマンドは,F4 に割り当てられています。
なので,F4 で余裕です。
ナローイングの方だけは,「C-c C-z j」に割り当てられてまつ。
F4つかいましょ,F4。ホームポジションから動くので,
ポリシーに反しますが。割り当てるとしたら,
C-c C-s t, C-c C-s r あたり?
ま,さらっと書いてますけど,最初は,
M-x html-script-narrow-to-javascript
なんてことしてました。
ほいで,M-x widen ですよ。
ソースみてて気づきましたよ。。。(汗)
泣きたくなったよ。
まとめ!!
- ナローイング(narrow-to-region)を覚えた!!(以前に書いた気がするが,記憶がふっとんでいた。)
- ナローイング解除を覚えた!!(M-x widen, C-x n w)
- M-x customize group [RET] somename を覚えた!!
- <script ...> と小文字でも html-helper-mode たんは,認識してくれる!
- search-backward-regexp って,case-insensitiveなの?? ドキュメント読んでもわからんかたよ。
- 毎度のことですが,すばらしい物を創ってくれている人たちに感謝!