假设我有这段代码:
{
"type" : "home",
"number":"212 555-1234"
}
我希望我的emacs在某些模式下自动在冒号后插入空格。 特别是我正在使用基于cc模式的javascript模式。它有帮助吗?
提前感谢。
答案 0 :(得分:4)
最简单的方法就是这样(在.emacs中):
(defun my-js-hook ()
(local-set-key ":" '(lambda () (interactive) (insert ": "))))
(add-hook 'js-mode-hook 'my-js-hook)
更复杂的替代方案包括yasnippet或skeleton mode。对于这么简单的事情来说,它们可能有些过分,但如果你想要更复杂的模板,它们是很有用的工具。
编辑:我不知道任何cc模式魔法允许在评论中使用不同的行为。我不太多使用cc模式,但我在手册中看不到任何明显的内容。这里有一些代码可以做你想做的事情:
(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 ": "))))))