【问题标题】:Bold all between * asterisks with User Defined Language in Notepad++在 Notepad++ 中使用用户定义语言在 * 星号之间加粗
【发布时间】:2018-08-18 20:44:45
【问题描述】:

我正在尝试在 Notepad++ 中设置用户定义的语言,以将星号之间的所有文本加粗,后跟空格。

我点击了用户定义的语言,然后创建了新语言,然后在 cmets 选项卡中我设置了“打开”和“关闭”*。这可行,但如果字符串后面跟着一个点,我不希望规则加粗该文本。

例如在下面的字符串中

*Hello*. How are you doing? Fine. *Thank you* .

我只希望 Thank you 加粗,因为“you”后面的*. 之间用空格隔开。另一方面,我不希望 Hello 加粗,因为“o”之后的 * 紧跟在一个点之后。

看起来像这样:

*你好*。你好吗?美好的。 谢谢

我该怎么做?

【问题讨论】:

  • 您可以定义 Open = * 和 Close = *<a_space> 但是这不会像您期望的那样工作。这里:*Hello*. How are you doing? Fine. *Thank you* . Hello 之前的第一个 * 将是评论的开始。然后。由于下一个* 后面没有空格,因此将被视为纯文本。第三个* 相同。所以评论将到达末尾(最后/第四)*,后面是一个空格。
  • 嗨胡里奥。感谢您的回答。正如你所说,它没有按预期工作。也许解决方案在 Notepad++ 中更复杂或不可能。你知道在另一个文本编辑器中这是否可能吗?我正在寻找的行为类似于 YouTube cmets 的语法格式。

标签: notepad++ user-defined


【解决方案1】:

我能够在SynWrite 编辑器中使用用户定义的语言达到高级突出显示要求的结果。 UDL Notepad++ highlighting mechanism UDL2 故意保持某种程度的简单性。 (在可用性和复杂性之间总是要找到平衡点。)所以 Synwrite 的 UDL 引擎允许更复杂的语言解析结构,包括解析状态(上下文)的设置等。但这当然需要更多的学习。无论如何,就我而言,在那次学习之后,我所有的突出显示要求都在那里完全满足了。

【讨论】:

    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2015-08-07
    相关资源
    最近更新 更多