Самый простой способ сделать это будет примерно так (в ваших .emacs):
(defun my-js-hook ()
(local-set-key ":" '(lambda () (interactive) (insert ": "))))
(add-hook 'js-mode-hook 'my-js-hook)
Более сложные альтернативы включают yasnippet или скелетный режим ,Они, вероятно, излишни для чего-то такого простого, но являются полезными инструментами, если вы хотите более сложные шаблоны.
РЕДАКТИРОВАТЬ: Я не знаю ни о какой магии cc-mode, которая допускает различное поведение внутри комментариев.Я не пользуюсь режимом cc, но не вижу в руководстве ничего очевидного.Вот код, который может делать то, что вы хотите:
(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 ": "))))))