2011-10-31 8 views

Respuesta

4

La forma más sencilla de hacer esto sería algo como esto (en su .emacs):

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

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

alternativas más sofisticadas incluyen yasnippet o skeleton mode. Probablemente sean exagerados por algo tan simple, pero son herramientas útiles si quieres plantillas más sofisticadas.

EDITAR: No conozco ninguna magia de modo cc que permita un comportamiento diferente dentro de los comentarios. No uso mucho el modo cc, pero no veo nada obvio en el manual. Aquí hay un poco de código que puede hacer lo que quiera:

(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

Gracias por repetir. Esto se ve bien, pero también anulará el comportamiento de los comentarios. Pregunté específicamente sobre cc-mode porque creo que se puede hacer con algo de magia cc-mode (creo que tienen algo para eso porque el proyecto existe desde 1992) –

+0

Agregué un código que podría solucionar el problema. – Tyler

+0

que hizo mi día :-) parece que es algo para iniciar el modo autoformat minor from =). Pero no entiendo esta línea: (save-excursion (setq in-comment-p (comment-beginning))). ¿Por qué no podemos inicializarlo en let? –

Cuestiones relacionadas