[英]How to configure emacs to properly comment code in php-mode?
我有emacs 23.3.1,在Windows上运行。
php-mode 1.5来自http://php-mode.sourceforge.net/ ,修改时间:2008-11-04
我认为这曾经有用,但是现在,当我尝试使用comment-region注释掉一段代码时,这是一个在`newcomment.el'中的交互式编译Lisp函数,我的结果很差。
例:
之前:
后:
您可以看到注释块中的每一行都有单行注释开始序列//
和多行注释结束序列*/
。
这不是一个大问题,虽然它很难看。 当我尝试取消注释块时出现问题。 我收到一个错误,“找不到评论结束”。 换句话说, comment-region
与Cu comment-region
不可逆。
我会看看我是否可以解决这个问题,但有没有我在php模式中缺少的设置?
谁知道?
更多
我没有在php-mode-hook函数中添加任何内容来更改comment-start
和comment-end
变量。 当我调试comment-region
我可以看到它们被设置为不匹配的//
和*/
某种方式。 这解释了评论区域的奇怪结果。 我不相信这是我的代码确实设置那样的变量。
我尝试在我的钩子中显式设置它们//
和(空字符串)。 在这种情况下, comment-region
看起来更漂亮,但仍然没有取消评论。 我也尝试了匹配的/*
和*/
,但结果相同。 取消注释不成功; 错误是can't find comment end.
。
更多2
我认为我的语法表是正确的。 它显示了这个:
......对我来说似乎是对的。
这解决了我:
(setq comment-use-syntax t)
我把它放在我的php模式钩子里。
不确定这是否必要,但我也包含了修改语法表的语句。 整个钩子看起来像这样:
(defun cheeso-php-mode-fn ()
"Function to run when php-mode is initialized for a buffer."
(require 'flymake)
(flymake-mode 1)
(setq c-default-style "bsd"
c-basic-offset 2)
;; not sure if necessary or not.
(modify-syntax-entry ?/ ". 124b" php-mode-syntax-table)
(modify-syntax-entry ?* ". 23" php-mode-syntax-table)
(modify-syntax-entry ?\n "> b" php-mode-syntax-table)
(modify-syntax-entry ?\^m "> b" php-mode-syntax-table)
(setq comment-multi-line nil ;; maybe
comment-start "// "
comment-end ""
comment-style 'indent
comment-use-syntax t))
comment-use-syntax
的帮助声明说主要模式应该设置它。 在我编辑的php缓冲区中,变量设置为nil。 我猜它是由php-mode设置的; 无论如何,它不是由我设定的。 将其设置为t
并确保语法表具有适当的值就可以了。
我应该说我只在PHP中使用C风格的评论; 我不使用#
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.