これを実行する最も簡単な方法は、(あなたの.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 ": "))))))
ありがとうございます。これはうまく見えますが、コメントの動作も上書きされます。私はcc-modeについて尋ねました。なぜなら、これはcc-modeの魔法を使って行うことができると信じているからです(私は彼らには何かがあると信じています)。 –
問題を解決するコードを追加しました。 – Tyler
あなたは私の日を過ごしました:-)は、自動フォーマットのマイナーモードを=から始めるのと同じように見えます。しかし、私はこの行を理解していません: (save-excursion(setq in-comment-p(コメント開始))))。 letで初期化できないのはなぜですか? –