字符串内的注释令牌

问题描述:

在猪等/ *开始块注释。如果我把它放在一个正则表达式字符串'blah/blah/*'中,emacs认为这是一个块注释,并且语法突出显示到地狱。我对elisp不熟悉,但我确信这是一个为猪提供注释的脚本的问题。字符串内的注释令牌

我该如何解决?

+0

我使用的Emacs(Debian测试中的23.2.1)能够在字符串内部的独立评论和评论之间进行区分。也许你在.emacs中得到了一些东西来触发这种行为?或者,您使用的是哪个版本的Emacs和哪个操作系统? – vpit3833 2011-02-01 06:13:47

+0

RHEL和emacs-23.2.1 – 2011-02-01 06:19:49

+0

您是否在使用http://sourceforge.net/projects/pig-mode/? – phils 2011-02-01 06:54:08

菲尔斯指出了问题的意见更好的设计的主要方式,但因为你仍然好奇:你使用的pig模式版本没有设置正确的语法表。 emacs识别注释和字符串的最可靠方法是使用语法表将字符映射到注释和字符串的开始/结束。你正在使用的版本试图用font-lock来完成。

你必须逃避\'es和*。所有正则表达式引擎使用的字符都必须转义。

如果要匹配“\”,则可能必须在交互式使用replace-regexp时编写“\\”,如果将其用作lisp函数,则可能需要编写“\\\\”。

(我甚至都逃不过我的逃逸在此评论,所以有8名逃逸上面最后转义序列)