gedit กำหนดเองเน้นไวยากรณ์สำหรับ Dummies?


15

ฉันต้องการสร้าง (มีจริง) เน้นไวยากรณ์ที่กำหนดเองสำหรับ gedit

จะมีเพียงไม่กี่รายการที่แตกต่าง:

บรรทัดที่ขึ้นต้นด้วย 2 แท็บ ----- หนึ่งสี บรรทัดที่ขึ้นต้นด้วย 3 แท็บ ----- สีอื่น บรรทัดที่ขึ้นต้นด้วย 4 แท็บ ----- สีอื่น และบรรทัดที่ขึ้นต้นด้วย INT หรือ EXT ----- สีอื่น

นี่คือการเขียนบทภาพยนตร์

ฉันดูหน้าคำนิยามภาษาเพื่อหา gedit แต่มันอยู่เหนือหัวฉัน

มีวิธีง่าย ๆ ที่ฉันสามารถทำได้หรือไม่?

คำตอบ:


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 ควรแสดงประเภท "การเล่นภาพยนตร์" ในแถบสถานะที่ด้านล่าง เส้นที่เยื้องกับแท็บ 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 (เป็น root) แทนที่สามบรรทัดแรกที่ไม่ใช่ความคิดเห็นด้วย:

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

    จากนั้นปรับสี (และสไตล์อื่น ๆ ด้วยเช่นbold="true") ของ def: ความคิดเห็น, def: ค่าคงที่, def: ตัวระบุและ def: รูปแบบคำสั่ง รีสตาร์ท gedit อีกครั้งและเปลี่ยนชุดสีของ gedit เป็น Screenplay เพื่อดูสีใหม่ของคุณ โปรดทราบว่านั่นเป็นการเปลี่ยนแปลงระดับโลก คุณอาจต้องการเปลี่ยนกลับเป็นชุดสีปกติของคุณเพื่อแก้ไขไฟล์อื่น ๆ

โปรดทราบว่าเมื่อใดก็ตามที่คุณเปลี่ยนไฟล์ screenplay.lang หรือ screenplay.xml คุณจะต้องรีสตาร์ท gedit เพื่อดูผลลัพธ์


นั่นมัน! น่ากลัว!
YAS

ขอบคุณฉันมีกรณีการใช้งานที่คล้ายกันโดยเน้นเส้นที่เกี่ยวข้อง แต่แตกต่างกันทางร่างกายด้วยสีเดียวกันและสิ่งนี้ช่วยได้มาก
Eloff
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.