Web屋のemacs lisp + .emacs
major modes
名前 | URL | 用途 |
---|---|---|
js2-mode | http://code.google.com/p/js2-mode/ | better javascript-mode |
css-mode | http://www.garshol.priv.no/download/software/css-mode/ | その名の通り。もう少し新しいの無いかな |
mmm-mode | http://mmm-mode.sourceforge.net/ | 複数のmajor modeを使う。htmlファイル中でscriptタグ内だけjs2-modeにしたり |
install
elisp置き場は~/site-lisp/の想定。
site-lispに必要な*.elを突っ込む。
#!/bin/sh mkdir ~/site-lisp/ mkdir work-elisps-for-web-dev cd work-elisps-for-web-dev wget http://js2-mode.googlecode.com/files/js2-20090723b.el wget http://www.garshol.priv.no/download/software/css-mode/css-mode.el wget http://downloads.sourceforge.net/project/mmm-mode/mmm-mode/0.4.8/mmm-mode-0.4.8.tar.gz?use_mirror=jaist tar zxvf mmm-mode-0.4.8.tar.gz mv css-mode.el js2-20090723b.el mmm-mode-0.4.8/*.el ~/site-lisp/ mv ~/site-lisp/{js2*,js2.el} cd ~/site-lisp/ && emacs --batch --eval '(byte-compile-file "js2.el")' && cd -
最初、emacsを起動して、"M-x byte-compile ~/site-lisp/js2.el"とやったときに当方の環境だと「Cannot open file "cc-defs.el"」とエラーが出てしまった。
rootでemacsを起動してbyte-compileしたら通ったけどなんだったんだろう。
.emacs
; add "~/site-lisp" to load-path (setq load-path (append '("~/site-lisp/") load-path)) ;; ファイルを保存時に #! で始まっていればスクリプトとみなして実行権限を与える (add-hook 'after-save-hook 'exeutable-make-buffer-file-executable-if-script-p) ; js2-mode (autoload 'js2-mode "js2" nil t) (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) ;; css-mode (autoload 'css-mode "css-mode") (add-to-list 'auto-mode-alist '("\\.css$" . css-mode)) ;; mmm-mode (require 'mmm-mode) (setq mmm-global-mode 'maybe) (set-face-background 'mmm-default-submode-face nil) ;submodeの背景色は不要 ;; define mmm submodes (mmm-add-classes '((embedded-css :submode css-mode :face mmm-code-submode-face :front "<style[^>]*>" :back "</style>" ) (embedded-js :submode js2-mode :face mmm-code-submode-face :front "<script[^>]*>" :back "</script>" )) ) ;; add mmm submodes to *.html files (mmm-add-mode-ext-class nil "\\.html?\\'" 'embedded-js) (mmm-add-mode-ext-class nil "\\.html?\\'" 'embedded-css) ;; autoinsert for html files ;; 空のhtmlを開いたとき、HTML4のテンプレを挿入 (require 'autoinsert) (auto-insert-mode 1) (setq auto-insert-alist (cons '(html-mode "Input title: " "\ <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\"> <html lang=\"ja\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <meta http-euiv=\"Content-Script-Type\" content=\"text/javascript\"> <meta http-equiv=\"Content-Style-Type\" content=\"text/css\"> <title>" str "</title> </head> <body> <h1>" str "</h1> " _ " </body> </html> ") auto-insert-alist))