2011-10-31 9 views
5

私はこのコードを持っているとしますEmacsの:どのように自動的にCCモード誘導体でコロンの後にスペースを挿入する

{ 
    "type" : "home", 
    "number":"212 555-1234" 
} 

私はEmacsが自動的にいくつかのモードでコロンの後にスペースを挿入したいです。 特に、私はccモードに基づいてjavascriptモードを使用しています。それは助けることができますか?

ありがとうございます。

答えて

4

これを実行する最も簡単な方法は、(あなたの.emacsで)このようなものになるだろう:

(defun my-js-hook() 
    (local-set-key ":" '(lambda() (interactive) (insert ": ")))) 

(add-hook 'js-mode-hook 'my-js-hook) 

より洗練された選択肢はyasnippetまたはskeleton modeが含まれます。彼らは恐らくこのシンプルなものに対して過度のものですが、もっと洗練されたテンプレートを望むなら有用なツールです。

EDIT:コメント内で異なる動作を可能にするccモードの魔法は認識していません。私はcc-modeをあまり使っていませんが、マニュアルには何も分かりません。しかし、あなたが望むことを行うことができるコードは少しあります:

(defun my-js-hook() 
    (local-set-key ":" 
      '(lambda() 
       (interactive) 
       (let ((in-comment-p)) 
        (save-excursion 
        (setq in-comment-p (comment-beginning))) 
        (if in-comment-p 
         (insert ":") 
        (insert ": ")))))) 
+0

ありがとうございます。これはうまく見えますが、コメントの動作も上書きされます。私はcc-modeについて尋ねました。なぜなら、これはcc-modeの魔法を使って行うことができると信じているからです(私は彼らには何かがあると信じています)。 –

+0

問題を解決するコードを追加しました。 – Tyler

+0

あなたは私の日を過ごしました:-)は、自動フォーマットのマイナーモードを=から始めるのと同じように見えます。しかし、私はこの行を理解していません: (save-excursion(setq in-comment-p(コメント開始))))。 letで初期化できないのはなぜですか? –

関連する問題