5
假設我有這樣的代碼:Emacs的:如何在CC模式衍生冒號後自動插入空格
{
"type" : "home",
"number":"212 555-1234"
}
我希望我的emacs在某些模式下,冒號後自動插入空格。 特別是我使用基於cc模式的javascript模式。它可以幫助嗎?
提前致謝。
假設我有這樣的代碼:Emacs的:如何在CC模式衍生冒號後自動插入空格
{
"type" : "home",
"number":"212 555-1234"
}
我希望我的emacs在某些模式下,冒號後自動插入空格。 特別是我使用基於cc模式的javascript模式。它可以幫助嗎?
提前致謝。
這樣做會是這樣的(在你的.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 ": "))))))
謝謝你的重播。這看起來不錯,但也會覆蓋評論的行爲。我特別詢問了cc模式,因爲我相信它可以用一些cc模式的魔法來完成(我相信他們有這個功能,因爲這個項目自1992年以來就存在) –
我添加了一些代碼來解決這個問題。 – Tyler
你讓我的一天:-)看起來像是從=開始autoformat小模式的東西。但我不明白這一行: (save-excursion(setq in-comment-p(comment-beginning)))。爲什麼我們不能初始化它? –