自定义gedit语法突出显示傻瓜?

Modified on: Mon, 11 Mar 2019 08:40:02 +0800

我想(实际上)为gedit制作一个自定义语法高亮显示。

只会有几个不同的项目:

以2个标签开头的行。 -----一种颜色。
以3个标签开头的行。 -----另一种颜色。
以4个制表符开头的行。 -----另一种颜色。
以及以INT开头的行。或EXT。 -----另一种颜色。

这是为了编写剧本。

我查看了gedit的语言定义维基页面,但它已经超出了我的想象。

我能做一个简单的方法吗?

作者:,YAS

最佳答案

以下内容源自GtkSourceView参考手册,语言定义v2.0 教程参考

使用以下内容创建文件/usr/share/gtksourceview-2.0/language-specs/screenplay.lang(以root身份):

<?xml version="1.0" encoding="UTF-8"?>
<language id="screenplay" _name="Screenplay" version="2.0" _section="Markup">
  <metadata>
    <property name="mimetypes">text/plain</property>
    <property name="globs">*.script</property>
  </metadata>
  <styles>
    <style id="indent2" _name="2x indented"  map-to="def:comment" />
    <style id="indent3" _name="3x indented"  map-to="def:constant" />
    <style id="indent4" _name="4x indented"  map-to="def:identifier" />
    <style id="intext"  _name="INT. or EXT." map-to="def:statement" />
  </styles>
  <definitions>
    <context id="screenplay">
      <include>
        <context id="indent4" style-ref="indent4">
          <start>^\t\t\t\t</start>
          <end>$</end>
        </context>
        <context id="indent3" style-ref="indent3">
          <start>^\t\t\t</start>
          <end>$</end>
        </context>
        <context id="indent2" style-ref="indent2">
          <start>^\t\t</start>
          <end>$</end>
        </context>
        <context id="intext" style-ref="intext">
          <start>^(INT|EXT)\.</start>
          <end>$</end>
        </context>
      </include>
    </context>
  </definitions>
</language>

通过运行

确保文件具有世界可读性

sudo chmod 0644 /usr/share/gtksourceview-2.0/language-specs/screenplay.lang

重启gedit。现在,您在gedit中打开的任何名为*.script的文件都应在底部的状态栏中显示“Screenplay”类型。缩进为2,3或4个制表符的行应分别为蓝色,品红色和青色,以及以INT开头的行。或EXT。将是红色和大胆的。

您可以通过以下几种方式进行调整:

  • .script文件名后缀在第5行的“globs”属性中设置。您可以以显而易见的方式更改它,并根据需要包含多个值,以分号(;)分隔。

  • 缩进和INT获得的颜色。和EXT。行取决于您为gedit选择的特定颜色方案。它们是注释,常量,标识符和语句样式的颜色(这就是map-to="def:comment"等等)。要获得不同的结果,您可以更改gedit颜色方案(编辑&gt;首选项&gt;字体和颜色),或重新排列map-to map-to 值>标签。如果您想要更多控制,可以按如下方式创建自己的配色方案:

    cd /usr/share/gtksourceview-2.0/styles
    sudo cp classic.xml screenplay.xml
    

    编辑screenplay.xml(以root身份)。将前三个非注释行替换为:

    <style-scheme id="screenplay" _name="Screenplay" version="1.0">
      <author>YAS</author>
      <_description>Screenplay color scheme</_description>
    

    然后调整def:comment,def:constant,def:identifier和def:statement styles的颜色(也可能是其他样式,例如&lt;style-scheme id="screenplay" _name="Screenplay" version="1.0"&gt; &lt;author&gt;YAS&lt;/author&gt; &lt;_description&gt;Screenplay color scheme&lt;/_description&gt; )。再次重新启动gedit,并将gedit的配色方案更改为Screenplay以查看新颜色。请注意,这是一个全球变化;您可能需要更改回常规配色方案以编辑其他文件。

请注意,每次更改screenplay.lang或screenplay.xml文件时,都必须重新启动gedit才能查看结果。


相关问答

添加新评论