我想将 paredit 与 php-mode 结合使用,但它不会添加右大括号“}”。这可能与电子支架绑定到“{”这一事实有关吗?我怎么能覆盖这个?
谢谢。
使用 paredit 是 php 模式是个坏主意 - 它主要适用于 Lisp 代码编辑。不过,通用开发有一个非常好的替代方案 - autopair-mode。它非常易于使用,并且以类似于大多数 IDE 中存在的方式插入大括号、方括号和引号。
前段时间,我为 C 写了这样一个东西,但是你也可以很容易地将它用于 PHP:
(define-minor-mode c-helpers-minor-mode
"This mode contains little helpers for C developement"
nil
""
'(((kbd "{") . insert-c-block-parentheses))
)
(defun insert-c-block-parentheses ()
(interactive)
(insert "{")
(newline)
(newline)
(insert "}")
(indent-for-tab-command)
(previous-line)
(indent-for-tab-command)
)
(add-hook 'php-mode-hook 'c-helpers-minor-mode)
以我的经验,autopair-mode
当大量缓冲区打开时感觉非常缓慢(另外,paredit-mode
确保分隔符永远不会不平衡,不像autopair-mode
)。因此,如果像我一样,您绝对想使用paredit-mode
而没有其他方法,请查看此答案。在那里给出的 elisp 片段中,只需将slime-repl-mode-map
and替换slime-repl-mode-hook
为 php 的相应变量(很可能是php-mode-map
and php-mode-hook
)