2011-10-31 10 views

Odpowiedz

4

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 ": ")))))) 
+0

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.). –

+0

Dodałem kod, który może rozwiązać problem. – Tyler

+0

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? –

Powiązane problemy