Najprostszym sposobem na to byłoby coś takiego (w Twojej .emacs):
(defun my-js-hook()
(local-set-key ":" '(lambda() (interactive) (insert ": "))))
(add-hook 'js-mode-hook 'my-js-hook)
Bardziej wyrafinowane alternatywy obejmują yasnippet lub skeleton mode. Prawdopodobnie są przesadą, jeśli chodzi o coś tak prostego, ale są przydatnymi narzędziami, jeśli chcesz mieć bardziej wyrafinowane szablony.
EDYCJA: Nie znam żadnej magii w trybie cc, która pozwala na inne zachowanie wewnątrz komentarzy. Nie używam trybu cc, ale nie widzę niczego oczywistego w instrukcji. Oto trochę kodu, który może zrobić, co chcesz:
(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 ": "))))))
Dziękuję za powtórkę. To wygląda dobrze, ale zastąpi także zachowanie dla komentarzy. Zapytałem konkretnie o tryb cc, ponieważ wierzę, że można to zrobić za pomocą magii w trybie cc (wydaje mi się, że mają coś takiego, ponieważ projekt istnieje od 1992 r.). –
Dodałem kod, który może rozwiązać problem. – Tyler
zrobiliście mój dzień :-) wygląda na to, że zaczynamy autoformatować mniejszy tryb od =). Ale nie rozumiem tej linii: (save-excursion (setq in-comment-p (comment-beginning))). Dlaczego nie możemy go zainicjować w let? –