2011-10-31 29 views

Trả lời

4

Cách đơn giản nhất để làm điều này sẽ là một cái gì đó như thế này (trong emacs của bạn):

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

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

lựa chọn thay thế phức tạp hơn bao gồm yasnippet hoặc skeleton mode. Họ có lẽ là quá mức cần thiết cho một cái gì đó đơn giản này, nhưng là công cụ hữu ích nếu bạn muốn templating phức tạp hơn.

CHỈNH SỬA: Tôi không biết về bất kỳ phép thuật cc-mode nào cho phép các hành vi khác nhau bên trong nhận xét. Tôi không sử dụng chế độ cc nhiều, nhưng tôi không thấy bất cứ điều gì rõ ràng trong hướng dẫn sử dụng. Dưới đây là một số mã có thể làm những gì bạn muốn mặc dù:

(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

Cảm ơn bạn đã phát lại. Điều này có vẻ tốt nhưng cũng sẽ ghi đè hành vi cho các nhận xét. Tôi hỏi cụ thể về chế độ cc vì tôi tin rằng nó có thể được thực hiện với một số ma thuật chế độ cc (tôi tin rằng họ có một cái gì đó cho rằng vì dự án tồn tại từ năm 1992) –

+0

Tôi đã thêm một số mã có thể khắc phục sự cố cho bạn. – Tyler

+0

bạn đã thực hiện ngày của tôi :-) có vẻ như đó là somethings để bắt đầu autoformat chế độ nhỏ từ =). Nhưng tôi không hiểu dòng này: (lưu-tham quan (setq in-comment-p (bình luận-bắt đầu))). Tại sao chúng ta không thể khởi tạo nó? –

Các vấn đề liên quan