【发布时间】:2011-03-14 13:02:09
【问题描述】:
我想将 paredit 与 php-mode 结合使用,但它没有添加右大括号“}”。这可能与电子支架绑定到“{”这一事实有关吗?我怎么能覆盖这个?
谢谢。
【问题讨论】:
标签: php emacs php-mode paredit
我想将 paredit 与 php-mode 结合使用,但它没有添加右大括号“}”。这可能与电子支架绑定到“{”这一事实有关吗?我怎么能覆盖这个?
谢谢。
【问题讨论】:
标签: php emacs php-mode paredit
使用 paredit 是 php 模式是个坏主意 - 它主要适用于 Lisp 代码编辑。不过,有一个非常好的通用开发替代方案 - autopair-mode。它非常易于使用,并且以类似于大多数 IDE 中存在的方式插入大括号、方括号和引号。
【讨论】:
autopair-mode 非常慢。另一方面,paredit-mode 总是感觉活泼,这就是我到处使用它的原因。
electric-pair-mode,可能更快?
autopair-mode 转到新的electric-pair-mode。它的能力稍差,但确实快得多。
前段时间,我为 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 而没有其他办法,请查看this answer。在给定的elisp sn-p中,只需将slime-repl-mode-map和slime-repl-mode-hook替换为php的相应变量(很可能是php-mode-map和php-mode-hook)
【讨论】: