"で""とか(で()とか
ruby-electricの機能を
他の言語を書いている時にも使いたいと思っていました。
具体的にはこんな感じ
- "{"と入力しただけで自動で"{}"と入力してくれる
- 入力したかっこの中にカーソルを置いてくれる
他の言語でも設定すればできるらしいので
http://d.hatena.ne.jp/khiker/20080118
http://d.hatena.ne.jp/gan2/20071227/1198759894
の2つをみながら設定してみました。
実際にしたこと
parenthesis.elをダウンロード。
http://www.oti-orz.mydns.jp/~khiker/file/20080119/parenthesis.el
.emacsに以下を追加
(require 'parenthesis) (defun f (name) (let ((modehook (intern (concat name "-mode-hook")))) (add-hook modehook (lambda () ;; { で{}を書く (define-key (current-local-map) "{" 'insert-braces) ;; ( で()を書く (define-key (current-local-map) "(" 'insert-parens) ;; " で""を書く (define-key (current-local-map) "\'" 'insert-single-quotation) ;; " で""を書く (define-key (current-local-map) "\"" 'insert-double-quotation) ;; [ で[]を書く (define-key (current-local-map) "[" 'insert-brackets) )))) (setq parenthesis-add-language '("javascript" "py" "text")) ;;pythonがpy-mode-mapなのが不思議 (let ((x parenthesis-add-language)) (while (car x) (f (car x)) (setq x (cdr x))))
これでpythonでもjavascriptでも文章を書くときでもカッコを書くのが楽になりました。