ฉันสามารถตั้งค่าการเน้นไวยากรณ์เริ่มต้นใน Gedit ได้หรือไม่


24

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

หลายครั้งที่ฉันวางตัวอย่างโค้ดลงในเอกสาร gedit ใหม่สำหรับการแก้ไขอย่างรวดเร็วและฉันต้องตั้งค่าสีไวยากรณ์เป็น HTML ด้วยตนเอง บางครั้งฉันเปิดเอกสาร ColdFusion (.cfm) ซึ่งดูเหมือนว่า gedit ไม่รู้จักและอีกครั้งฉันต้องตั้งค่าสีด้วยตนเองเป็น HTML ความไม่สะดวกทั้งสองนี้จะได้รับการแก้ไขถ้าฉันสามารถหาวิธีบอก gedit ให้ใช้การเน้นไวยากรณ์ HTML โดยอัตโนมัติสำหรับเอกสารและเอกสารใหม่โดยไม่ต้องมีนามสกุลไฟล์ที่รู้จัก เป็นไปได้ไหม


ฉันยังสงสัยด้วยว่าฉันสามารถสลับไปมาระหว่างภาษาต่าง ๆ โดยไม่ต้องบันทึกไฟล์เหมือนใน SciTE หรือไม่ จะช่วยฉันประหยัดเวลา
nickguletskii

คำตอบ:


21

อย่างน้อยคุณสามารถเพิ่มนามสกุลไฟล์ในรูปแบบการระบายสีไวยากรณ์ html โดยการแก้ไขhtml.langใน/usr/share/gtksourceview-2.0/language-specs/ฐานะผู้ใช้ขั้นสูง สมมติว่าคุณต้องการเพิ่มการเน้นไวยากรณ์ HTML ลงในไฟล์ cfm คุณจะต้องเปลี่ยนสิ่งนี้

<property name="globs">*.html;*.htm</property>

(ค่าเริ่มต้นhtml.lang) เป็นแบบนี้

<property name="globs">*.html;*.htm;*.cfm</property>


ขอบคุณ! สิ่งนี้ใช้ในการสร้าง gedit เพิ่มการกำหนดสีให้กับไฟล์ ColdFusion ของฉัน
Michael Martin-Smucker

2
ฉันหวังว่าฉันจะสามารถเพิ่มคะแนนโหวตพิเศษบางส่วนให้กับคำตอบนี้ ฉันเพิ่งใช้คำตอบนี้อีกครั้งเพื่อให้ CSS เน้นไปที่ไฟล์ LESS และ SASS
Michael Martin-Smucker

1
ฉันชอบความคิดในการทำซ้ำและแก้ไข.langในไดเรกทอรีผู้ใช้ด้วยตัวเอง
jozxyqk

1
@michaelms ฉันเพิ่ม upvote ให้กับโพสต์และความคิดเห็นของคุณเพราะฉันได้เพิ่ม CSS เน้นไปที่ไฟล์ LESS ของฉันใน gedit โดยแก้ไข sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang และเพิ่ม * น้อยลงและ * .sass คุณสมบัติ globs: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
เชื่อมโยงสเวนสัน

คุณอาจต้องแก้ไขพา ธ สำหรับ gtksourceview เวอร์ชันต่างๆ คุณอาจต้องการคัดลอกไฟล์ไปยังโฟลเดอร์โปรไฟล์ของคุณเพื่อป้องกันไม่ให้ถูกเขียนทับ ดูคำตอบของ 5chdn ด้านล่าง ( askubuntu.com/a/310553/37574 )
mwfearnley

14

คุณสามารถสร้างไฟล์นิยามภาษาของคุณเองใน$HOMEไดเรกทอรีของคุณ ไม่แนะนำให้แก้ไขข้อมูลจำเพาะภาษา gtk เนื่องจากจะถูกแทนที่ด้วยการอัปเดต gtksourceview ทุกครั้ง

คัดลอกไฟล์ข้อกำหนดภาษาไปยังโฮมไดเร็กตอรี่ของคุณ:

$ cp /usr/share/gtksourceview-3.0/language-specs/html.lang ~/.local/share/gtksourceview-3.0/language-specs/

จากนั้นเพิ่มรูปแบบไฟล์ที่คุณกำหนดเองเช่น.cfmในรายการส่วนขยาย:

<property name="globs">*.html;*.htm;*.cfm</property>

ด้วยวิธีgeditนี้จะใช้การเน้นไวยากรณ์อัตโนมัติในรูปแบบไฟล์ที่คุณกำหนดเองและการอัปเดต gtk จะไม่แทนที่การเปลี่ยนแปลงที่คุณกำหนดเอง


1
นี่เป็นตัวเลือกที่ดีกว่าคำตอบที่เลือก เมื่อเป็นไปได้ให้ใช้การเปลี่ยนแปลงในเครื่อง
nightcod3r

แต่ gedut จะรู้จักไฟล์ที่คัดลอกใน $ HOME ได้อย่างไร? ฉันจะบอก gedit ได้อย่างไรว่าต้องค้นหาไฟล์. lang ใน $ HOME ??? ขอบคุณล่วงหน้า.
Srikrishnan

8

สิ่งนี้เป็นไปไม่ได้หากไม่มีการแก้ไขซอร์สโค้ดของ Gedit หรือเขียนปลั๊กอินเพื่อแทนที่ค่าเริ่มต้น โครงการไวยากรณ์เริ่มต้นไฮไลต์คือการกำหนดค่าตายตัว


ขอบคุณที่ชี้นำฉันในทิศทางที่ถูกต้อง ฉันโคลน gedit ล่าสุดและเริ่มแหย่ไปรอบ ๆ ก่อนที่ฉันจะรู้ว่า gedit ตอนนี้ขึ้นอยู่กับ gtk + 3 สิ่งนี้มีศักยภาพที่จะกลายเป็นระเบียบที่ใหญ่กว่าที่ฉันต่อรอง ;-)
Michael Martin-Smucker

อีกสิ่งหนึ่ง: ความคิดใด ๆ ค่าlanguageที่ถูกต้อง? ผมมองผ่านแหล่งสำหรับgeditและgtksourceviewและฉันไม่สามารถหาอะไรที่ดูเหมือนชื่อภาษา ( แต่ทักษะของฉัน C จะสวยไม่มีอยู่จริง.)
ไมเคิลมาร์ติน Smucker

1
@MichaelMS ผมไม่แน่ใจ แต่ถ้าคุณวางแผนที่เกี่ยวกับการลงทุนความพยายามใด ๆ ที่เป็นวิธีการแก้ปัญหาผมคิดว่ามันอาจจะเป็นที่ง่ายที่สุดที่จะเพียงแค่ฝังset_languageโทรเข้าไปในปลั๊กอินตัวอย่างหลาม คุณอาจใช้get_languageเพื่อหาค่าที่เหมาะสมสำหรับการเน้นแหล่งที่มา HTML
ændrük
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.