【问题标题】:Notepad++ User Defined language for Perl用于 Perl 的 Notepad++ 用户定义语言
【发布时间】:2018-03-20 19:39:39
【问题描述】:

我正在尝试为 Perl 脚本创建自己的语言定义主题,以便按照我想要的方式对所有内容进行颜色编码。

我遇到的问题是,通过在 UDL GUI 中使用分隔符,正则表达式部分没有按照我需要的方式着色。 示例:

if($string =~ /^This is a string$/){
   print "worked!!!!!!\n";
}

我希望“/^This is a string$/”颜色编码为红色,但我创建的分隔符在 =~ / 之后占用整行。如何强制 Notepad++ 仅在最后一行“/”之前进行颜色编码?

这是我的分隔符配置。请记住,我已经尝试过“/”而不是 ((EOL)),但它没有用。谢谢

【问题讨论】:

  • 从技术上讲,/ 是打开和关闭分隔符。不幸的是,它也是除法运算符,这使得这变得复杂。如果您习惯使用m/.../ 而不是/.../,则可以将m/ 设置为开始分隔符,将/ 设置为结束分隔符。不过,这对 s/// 没有帮助。
  • 十年前我使用 Notepad++ 有一段时间了,我似乎记得荧光笔与 Perl 配合得很好。然后我切换到 PSPad,它也是免费的,但我发现它好多了,还有突出显示。
  • 你会遇到一些麻烦让这个工作。 @ikegami 关于m//s/// 是正确的,但是m{}{}s[][]y!!!tr@@@ 都是有效的(但y///tr/// 不是正则表达式,只是其他引用- 类似的运算符)。 m mfooom 也有效。有一种说法是只有 Perl 可以解析 Perl,我认为您使用 Notepad++ 获得的解析引擎不足以应对这一挑战。如果您想了解有关解析 Perl 的更多信息,请参阅 TPCiA 2017 中的this talk by Damian Conway 关于编写单个正则表达式来解析它是很好的
  • 看完 Damian 的演讲后,也可以观看同一会议的 these two follow-up lightning talks。他们很搞笑。 :)
  • 我很抱歉,但 PSPad 可能是我见过的最丑的编辑器之一 :(。我喜欢它的一些工具,而且 Perl 的语法高亮太简单了。我想我将继续使用我在记事本中的内容。谢谢你们

标签: perl notepad++


【解决方案1】:

我在我的 AWK 定义中使用它作为我的分隔符之一:

Open:    ~/ (/ ,/ !~/
Escape:  \ \ \ \
Close:   / / / /

这并不理想,但对我来说已经足够了。

【讨论】:

  • @JohnnyLoo 你可以为 PERL 做类似的事情。例如,打开:~=/ 转义:\ 和关闭:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-20
  • 2012-09-16
  • 2011-08-28
  • 1970-01-01
  • 2020-08-31
  • 2023-03-02
  • 2011-08-06
相关资源
最近更新 更多