Emacs:如何在 cc 模式导数中的冒号后自动插入空格

发布于 2024-12-13 01:45:36 字数 174 浏览 1 评论 0原文

假设我有这样的代码:

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

我希望我的 emacs 在某些模式下自动在冒号后插入空格。

特别是我正在使用基于 cc 模式的 javascript 模式。有帮助吗?

Suppose I have this code:

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

I want my emacs to automatically insert space after colon in some modes.

Particularly I'm using javascript-mode based on cc-mode. Can it help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只等公子 2024-12-20 01:45:36

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

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

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

更复杂的替代方法包括 yasnippet骨架模式。对于如此简单的事情来说,它们可能有点过分了,但如果您想要更复杂的模板,它们是有用的工具。

编辑:我不知道任何 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 ": "))))))

The simplest way to do this would be something like this (in your .emacs):

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

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

More sophisticated alternatives include yasnippet or skeleton mode. They are probably overkill for something this simple, but are useful tools if you want more sophisticated templating.

EDIT: I'm not aware of any cc-mode magic that allows for different behaviour inside comments. I don't use cc-mode much, but I don't see anything obvious in the manual. Here's a bit of code that may do what you want though:

(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 ": "))))))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文