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


15

我想为gedit制作(实际上已经)自定义语法。

只有几个不同的项目:

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

这是用于编写剧本。

我在gedit的语言定义Wiki页面上进行了浏览,但是这太麻烦了。

有没有简单的方法可以做到这一点?

Answers:


16

以下内容来自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。现在任何名为*.script,您在gedit中打开的都应在底部的状态栏中显示“ Screenplay”类型。带有2个,3个或4个制表符的缩进线应分别着色为蓝色,洋红色和青色,并且以INT开头的行。或EXT。将是红色和黑体字。

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

  • .script文件名的后缀被设置在第5行,在“水珠”属性。您可以通过明显的方式更改此值,并根据需要包含多个值,并以分号(;)分隔。

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

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

    编辑screenplay.xml(作为根用户)。将前三行非注释行替换为:

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

    然后调整bold="true"def:comment,def:constant,def:identifier和def:statement样式的颜色(也许还有其他样式,例如)。再次重新启动gedit,并将gedit的配色方案更改为“剧本”以查看新的颜色。注意,这是全球性的变化;您可能需要改回常规的配色方案来编辑​​其他文件。

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


做到了!真棒!
YAS

谢谢,我有一个类似的用例,用相同的颜色突出显示了相关但物理上不同的线条,这很有帮助。
Eloff 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.