【问题标题】:Emacs php-mode and pareditEmacs php 模式和 paredit
【发布时间】:2011-03-14 13:02:09
【问题描述】:

我想将 paredit 与 php-mode 结合使用,但它没有添加右大括号“}”。这可能与电子支架绑定到“{”这一事实有关吗?我怎么能覆盖这个?

谢谢。

【问题讨论】:

    标签: php emacs php-mode paredit


    【解决方案1】:

    使用 paredit 是 php 模式是个坏主意 - 它主要适用于 Lisp 代码编辑。不过,有一个非常好的通用开发替代方案 - autopair-mode。它非常易于使用,并且以类似于大多数 IDE 中存在的方式插入大括号、方括号和引号。

    【讨论】:

    • 当我有大量打开的缓冲区时,我发现autopair-mode 非常慢。另一方面,paredit-mode 总是感觉活泼,这就是我到处使用它的原因。
    • Emacs 24 包含一个新的全局electric-pair-mode,可能更快?
    • 是的,是的。我已经从autopair-mode 转到新的electric-pair-mode。它的能力稍差,但确实快得多。
    【解决方案2】:

    前段时间,我为 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)
    

    【讨论】:

      【解决方案3】:

      根据我的经验,autopair-mode 在打开大量缓冲区时感觉非常缓慢(另外,paredit-mode 确保分隔符从不不平衡,这与 autopair-mode 不同)。因此,如果像我一样,您绝对想使用paredit-mode 而没有其他办法,请查看this answer。在给定的elisp sn-p中,只需将slime-repl-mode-mapslime-repl-mode-hook替换为php的相应变量(很可能是php-mode-mapphp-mode-hook

      【讨论】:

        猜你喜欢
        • 2011-07-11
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多