【发布时间】:2012-05-25 17:18:51
【问题描述】:
我有 emacs 23.3.1,在 Windows 上运行。
来自http://php-mode.sourceforge.net/的php-mode 1.5, 修改:2008-11-04
我认为这曾经可以工作,但是现在,当我尝试注释掉一段代码时,使用 评论区,这是一个交互式 在 `newcomment.el' 中编译 Lisp 函数,结果很差。
例子:
之前:
之后:
可以看到注释块中的每一行都有单行注释开始序列//,和多行注释结束序列*/。
这不是一个大问题,虽然它很丑。当我尝试取消注释该块时,问题就出现了。我收到错误消息“找不到评论结束”。换句话说,comment-region 与C-u comment-region 是不可逆的。
我会看看我能不能解决这个问题,但是我在 php-mode 中缺少一个设置吗?
有人知道吗?
更多
我没有在我的 php-mode-hook 函数中添加任何东西来更改 comment-start 和 comment-end 变量。当我调试comment-region 时,我可以看到它们以某种方式设置为// 和*/ 的不匹配对。这就解释了注释区域的奇怪结果。我不相信是我的代码设置了这样的变量。
我尝试在我的钩子中将它们明确设置为// 和(空字符串)。在这种情况下,comment-region 看起来更漂亮,但它仍然没有取消注释。我还尝试了匹配的/* 和*/,但结果相同。取消注释不成功;错误是 can't find comment end. 。
更多
我认为我的语法表是正确的。它显示了这一点:
...这对我来说似乎是正确的。
【问题讨论】:
-
emacswiki.org/emacs/PhpMode 有针对此错误的补丁。
-
嗯,好的,该页面非常大,我没有看到任何看起来像是描述我在这里遇到的问题的特别内容。在该页面上也没有看到类似明确补丁的任何内容,尽管有指向其他派生模式的指针可以修复各种问题。但那些各种各样的事情不是我的具体问题。无论如何,我发现了一些可以让我继续的东西,那就是设置
comment-use-syntax变量。可能不适用于所有人,但它对我有用。 stackoverflow.com/a/10759293/48082 -
例如,您是否在该页面上搜索过“patch”? "php-mode.sourceforge.net – 由支持 Emacs 22 (CcMode 5.31) 的 AaronHawley 维护。默认情况下,在 GNU Emacs 23.2.1 中,// cmets 没有被 M-q 正确格式化。问题是 c-mode 中的一个错误,php-模式 1.5.0 取决于。补丁可用且有效,但必须手动应用:行号不匹配。"
-
我看到了。但这不是我在这里描述的问题。这与 cmets (
M-q) 上的填充段落有关。我这里描述的问题是不同的。 -
很抱歉。我很抱歉跳到这里。