สามารถกำหนดสไตล์การเน้นเริ่มต้นของ Gedit สำหรับไฟล์ที่ไม่มีนามสกุลได้หรือไม่?


10

ฉันมักจะทำงานกับไฟล์ข้อความที่ไม่มีส่วนขยายหรือมีส่วนขยายที่ไม่ได้มาตรฐานโดยใช้ Gedit ( .sampleเช่นไฟล์ที่ไม่เข้าใจประเภท mime) และ Gedit มักใช้การเน้นไวยากรณ์ของ Matlab เสมอ

ตั้งค่าไฮไลต์ gedit

ฉันต้องการตั้งค่าการเน้นไวยากรณ์เริ่มต้นของ 'ข้อความธรรมดา' สำหรับไฟล์เหล่านี้ เป็นไปได้ไหม

นาโนสามารถทำเช่นนี้และคำถามที่คล้ายกันสำหรับไฟล์ที่มีนามสกุลที่อยู่ที่นี่ ฉันกำลังมองหาคำตอบที่ช่วยให้ฉันสามารถกำหนดรูปแบบของข้อความล้วนสำหรับทุกประเภทที่ไม่มีส่วนขยายหรือไม่พบ/usr/share/gtksourceview-3.0/language-specs/ตามที่อธิบายไว้ที่นี่

ข้อมูลที่ร้องขอ:

  • ไม่มีไฟล์ข้อกำหนดภาษาท้องถิ่นใน ~/.local/share/gtksourceview-3.0/language-specs/
  • ผลลัพธ์ของfile --mime-type -b <myfile>ถูกต้องtext/plain

ใช่ #! สร้างในบรรทัดแรกเช่น #! / bin / bash จะทำให้geditรู้จักไฟล์เป็น bash shellscript และไฟล์สคริปต์อื่น ๆ ก็รู้จักเช่นกันเช่นสคริปต์ python ฉันไม่เคยเอ็นดูคุณลักษณะนี้ แต่ฉันใช้มันกับGeditและในลักษณะที่คล้ายกันกับGeany ฉันคิดว่าบางคนจะมีทางออกให้คุณ :-)
sudodus

พฤติกรรมที่คุณได้รับจาก Gedit ดูเหมือนว่าเป็นข้อบกพร่องถ้าฉันเข้าใจคุณอย่างถูกต้อง อย่างน้อยด้วย gedit 3.18.3-0ubuntu4 บน Xenial (และ Gedit หรือ Pluma ทุกรุ่นที่ฉันจำได้ว่าใช้ในแพลตฟอร์มใด ๆ ) ไฟล์ที่ไม่มีนามสกุลหรือนามสกุลที่ไม่รู้จักจะถือว่าเป็นข้อความธรรมดาและไม่เน้น ฉันไม่คิดว่าฉันมีประสบการณ์ก่อนหน้านี้ที่เปิดไฟล์ตัวอย่าง แต่เมื่อฉันสร้างไฟล์ดังกล่าวในเครื่อง Xenial ของฉันและเปิดใน Gedit มันจะระบุว่าเป็นข้อความธรรมดา ทำทุกไฟล์ของคุณด้วยที่ไม่รู้จัก (หรือไม่) ส่วนขยายได้รับการเน้นเป็นรหัสที่มา Matlab?
Eliah Kagan

ไม่ได้อยู่ในเครื่อง Ubuntu แต่คุณลองเปลี่ยนพารามิเตอร์ globbing ใน/usr/share/gtksourceview-3.0/language-specs/mathlab.lang(หรือไฟล์ภาษา MathLab ที่ตรงกับ) เป็น: <property name="globs">*</property>??? ;-) หากที่ไม่หลอกลวงฉันจะโพสต์คำตอบที่เต็ม ...
Fabby

ความสนใจในฉบับนี้ก็เช่นกัน
mattia.b89

1
@EliahKagan ฉันเปิดใช้งานการบันทึกอัตโนมัติใน Gedit ซึ่งดูเหมือนว่าจะเปิดใช้งานการเน้นไวยากรณ์ Matlab สำหรับไฟล์ข้อความธรรมดาที่ไม่มีส่วนขยาย เปิดขึ้นหนึ่งรายการบันทึกด้วยตนเอง (หรือรอให้การบันทึกอัตโนมัติเพื่อเปิดใช้งาน) จากนั้นดูปัญหาที่เกิดขึ้น หากคุณเปลี่ยนกลับเป็นข้อความธรรมดาด้วยตนเองมันก็ไม่เป็นไรหลังจากนั้น แต่ถ้าคุณไม่เคยเลือกหรือแทรกแซงมันจะใช้ Matlab
Tom Brossman

คำตอบ:


5

ขั้นตอนดำเนินการ

ในของฉันgeditจากแถบเมนูด้านบนผมเลือกView, Highlight mode...และ "ข้อความธรรมดา" เป็นค่าเริ่มต้นที่แสดงด้านล่าง:

โหมดไฮไลต์ gedit

ใช้ชื่อไฟล์ "test.sample" และวางในโค้ด Matlab สองสามบรรทัดมันยังคงอยู่ในรูปแบบ "Plain Text" เว้นแต่ว่าฉันจะบังคับให้เป็นรูปแบบ "Matlab"

หลังจากบันทึกและออกจากฉันดำเนินการcp test.sample test.newbeeตามgedit test.newbeeรูปแบบเริ่มต้นยังคงเป็น "ข้อความธรรมดา"

ถัดไปฉันสร้างไฟล์ใหม่โดยใช้ที่เรียกว่าgedit noextentionฉันพิมพ์ประโยคบันทึกไฟล์ใหม่และออก จากนั้นฉันเปิดไฟล์อีกครั้งโดยใช้geditและนี่คือผลลัพธ์:

ป้อนคำอธิบายรูปภาพที่นี่

สังเกตเห็นแถบด้านล่างของหน้าต่างของ gedit แสดงPlain Textตัวเลือกสำหรับการเน้น

สรุป

สิ่งนี้ทำภายใต้ Ubuntu 16.04, เคอร์เนล 4.4.0-53

ผมสามารถยืนยันได้ว่ามีอยู่ใน<property name="globs">*.m</property>/usr/share/gtksourceview-3.0/language-specs/matlab.lang

เพราะผมไม่สามารถทำลายระบบของฉันเช่นคุณจนกว่าเราจะหาบางสิ่งบางอย่างในระบบของคุณในการแก้ไขปัญหาผมขอแนะนำให้ติดตั้งหลังจากที่ถอดและกวาดล้างไฟล์ทั้งหมดของมันด้วยgeditapt-get

รายละเอียดเกี่ยวกับเวอร์ชันของฉัน:

$ sudo apt install gedit
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gedit is already the newest version (3.18.3-0ubuntu4).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

2
ขอบคุณสิ่งนี้มีประโยชน์ ฉันได้ค้นพบว่าปัญหาแตกต่างกันไปตามเนื้อหาของไฟล์ สำหรับไฟล์ที่มีเนื้อหา "นี่คือไฟล์ข้อความล้วน" มันจะเป็นข้อความธรรมดา สำหรับไฟล์ที่ขึ้นต้นด้วย '#' และใน Markdown (ฉันใช้มันบ่อยเท่าที่อ่านง่าย) ฉันยังเห็นสวิตช์ไฮไลต์เป็น Matlab บางทีฉันต้องถามคำถามใหม่ว่า "จะทำให้ Gedit รู้จักไวยากรณ์ของ Markdown ได้อย่างไร"
Tom Brossman

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