假设我有这个代码:
{
"type" : "home",
"number":"212 555-1234"
}
我希望我的 emacs 在某些模式下自动在冒号后插入空格。特别是我使用的是基于 cc-mode 的 javascript-mode。能帮上忙吗?
预先感谢。
最简单的方法是这样的(在你的 .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 ": "))))))