5

假设我有这个代码:

{
  "type"  : "home",
  "number":"212 555-1234"
}

我希望我的 emacs 在某些模式下自动在冒号后插入空格。特别是我使用的是基于 cc-mode 的 javascript-mode。能帮上忙吗?

预先感谢。

4

1 回答 1

4

最简单的方法是这样的(在你的 .emacs 中):

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

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

更复杂的替代方案包括yasnippet骨架模式。对于这么简单的事情,它们可能有点矫枉过正,但如果您想要更复杂的模板,它们是有用的工具。

编辑:我不知道任何允许在评论中出现不同行为的 cc 模式魔法。我很少使用 cc-mode,但我在手册中看不到任何明显的内容。这里有一些代码可以做你想做的事:

(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 ": "))))))
于 2011-10-31T14:58:17.903 回答