web-dev-qa-db-ja.com

ダミーのためのカスタムgedit構文の強調表示?

Geditのカスタム構文を強調表示したい(実際に持っている)。

いくつかの異なるアイテムがあります:

2つのタブで始まる行。 -----単色。 3つのタブで始まる行。 -----別の色。 4つのタブで始まる行。 -----別の色。 INTで始まる行。またはEXT。 -----別の色。

これは脚本を書くためのものです。

私はgeditの言語定義wikiページを見ましたが、それは私の頭を超えています。

これを行う簡単な方法はありますか?

15
YAS

以下は、GtkSourceViewリファレンスマニュアル、Language Definition v2.0 Tutorial および Reference から派生したものです。

次の内容で、ファイル/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の配色を変更するか([編集]> [設定]> [フォントと色])、またはmap-toタグの<style>値を再配置します。より細かく制御したい場合は、次のように独自の配色を作成できます。

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

    Screenplay.xmlを(ルートとして)編集します。最初の3つの非コメント行を次のように置き換えます。

    <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スタイルの色(および他のスタイル、たとえばbold="true")を調整します。 geditを再起動し、geditの配色を脚本に変更して新しい色を表示します。ただし、これはグローバルな変更であることに注意してください。他のファイルを編集するには、通常の配色に戻すことをお勧めします。

Screenplay.langまたはscreenplay.xmlファイルを変更するときはいつでも、結果を表示するためにgeditを再起動する必要があることに注意してください。

16
Andrew Schulman