ตั้งค่าไวยากรณ์เริ่มต้นเป็นประเภทไฟล์ที่แตกต่างใน Sublime Text 2


731

ฉันจะตั้งค่าประเภทไฟล์เริ่มต้นสำหรับนามสกุลไฟล์ที่แน่นอนใน Sublime Text 2 ได้อย่างไร โดยเฉพาะฉันต้องการให้ไฟล์ * .cfg เป็นค่าเริ่มต้นให้มีการเน้นไวยากรณ์ของ Ini แต่ฉันไม่สามารถหาวิธีที่ฉันสามารถสร้างการตั้งค่าแบบกำหนดเองนี้ได้

คำตอบ:


1597

ใน Sublime Text 2 เวอร์ชันปัจจุบัน (Build: 2139) คุณสามารถตั้งค่าไวยากรณ์สำหรับไฟล์ทั้งหมดของนามสกุลไฟล์ที่แน่นอนโดยใช้ตัวเลือกในแถบเมนู View -> Syntax -> Open all with current extension as... ->[your syntax choice]เปิดไฟล์ที่มีนามสกุลคุณต้องการตั้งค่าเริ่มต้นสำหรับการสำรวจและผ่านเมนูต่อไปนี้:

อัปเดต 2012-06-28:งานสร้างล่าสุดของ Sublime Text 2 (อย่างน้อยตั้งแต่ Build 2181) ได้รับอนุญาตให้ตั้งค่าไวยากรณ์โดยการคลิกที่ประเภทไวยากรณ์ปัจจุบันที่มุมขวาล่างของหน้าต่าง นี่จะเป็นการเปิดเมนูการเลือกไวยากรณ์ที่มีตัวเลือกให้Open all with current extension as...อยู่ที่ด้านบนของเมนู

อัปเดตเมื่อวันที่2016-04-25:ณ ตอนนี้ยังสามารถใช้ได้กับ Sublime Text 3


2
คุณลองOpen all with current extension as...หรือเพียงแค่ตั้งค่าไวยากรณ์ผ่านตัวเลือกในSyntaxเมนูหรือไม่?
โคลิน R

ได้รับการยืนยัน คุณต้องรีสตาร์ท Sublime เพื่อให้การเปลี่ยนแปลงดำเนินไป นอกจากนี้สิ่งนี้จะไม่เปลี่ยนไฟล์ "ใช้งานอยู่" คุณสามารถบอกได้โดยดูที่ด้านล่างขวาของไวยากรณ์ที่เลือกไว้ การเริ่มต้นใหม่แก้ไขได้แม้ว่า
dmackerman

8
สิ่งนี้สามารถทำได้ในแต่ละโครงการหรือไม่? ตัวอย่างเช่นสำหรับโครงการหนึ่งฉันอาจต้องการไวยากรณ์ Mako สำหรับไฟล์. html ในขณะที่อีกอาจใช้ไวยากรณ์อื่น
Ken Kinder

44
นี่ยังคงเป็นวิธีการที่ใช้ใน ST3 (เหมือนรุ่น 3010) ดูเหมือนว่าไม่จำเป็นต้องรีสตาร์ทและไฟล์ที่ใช้งานทั้งหมดที่มีนามสกุลถูกอัพเดตโดยอัตโนมัติ
tbeseda

3
@ziyuang - ตรวจสอบให้แน่ใจว่าคุณมีเคอร์เซอร์อยู่ที่ไหนสักแห่งในไฟล์ที่เปิดอยู่
Richard Marskell - Drackir

148

ไปที่ a Packages/Userสร้าง (หรือแก้ไข) .sublime-settingsไฟล์ที่ตั้งชื่อตามไวยากรณ์ที่คุณต้องการเพิ่มส่วนขยายIni.sublime-settingsในกรณีของคุณจากนั้นเขียนสิ่งต่อไปนี้:

{
    "extensions":["cfg"]
}

จากนั้นรีสตาร์ท Sublime Text


NB ไวยากรณ์ที่คุณต้องการใช้เป็นแบบตรงตัวพิมพ์ (เช่นCSSสำหรับ css) และจะแทนที่การตั้งค่าผ่านทาง UI (ดู @ โพสต์ของ Colin)
ForbesLindesay

@Elland ฉันเปิดปัญหาสำหรับปัญหา
JJD

29
ฉันคิดว่ามันง่ายขึ้นด้วยข้อความประเสริฐ 2/3 เพื่อเปิดไฟล์ของคุณจากนั้นเลือกไวยากรณ์ที่คุณต้องการใช้ จากนั้นคลิกการตั้งค่า -> การตั้งค่า - เพิ่มเติม -> เฉพาะไวยากรณ์ - ผู้ใช้ และมันจะสร้างไฟล์นั้นให้คุณ เพียงวางโค้ดด้านบนในบันทึกและรีสตาร์ท
kokorohakai

ใช้วิธีนี้เพราะฉันสามารถลบไฟล์การตั้งค่าที่แทนที่การตั้งค่าของฉันผ่าน UI
turbo2oh

มีวิธีการกำหนดค่านี้สำหรับโครงการเฉพาะหรือไม่
steinybot

21

ใน ST2 มีแพ็คเกจที่คุณสามารถติดตั้งได้ที่ชื่อ Default FileType ซึ่งทำเช่นนั้น

ข้อมูลเพิ่มเติมที่นี่


1
This package sets the default file type of new files to be either the same as the current file, or a predefined default. สิ่งที่ฉันกำลังมองหา! ขอบคุณ
Ricardo Saporta

ใน ST3 ก็ใช้งานได้! เพียงแค่ต้องทำงานด้วยตนเอง (บันทึก DefaultFileType ในเส้นทางผู้ใช้ ST3
staticor

5

คุณสามารถเปิดใช้งานการเน้นไวยากรณ์ตามเนื้อหาของไฟล์

ตัวอย่างเช่น Makefiles ของฉันโดยไม่คำนึงถึงนามสกุลบรรทัดแรกดังนี้:

#-*-Makefile-*- vim:syntax=make

นี่เป็นวิธีปฏิบัติทั่วไปสำหรับบรรณาธิการอื่น ๆ เช่นกลุ่ม

อย่างไรก็ตามเพื่อให้สามารถใช้งานได้คุณจะต้องแก้ไข Makefile.tmLanguageไฟล์

  1. ค้นหาไฟล์ (สำหรับ Sublime Text 3 ใน Ubuntu) ได้ที่:

    /opt/sublime_text/Packages/Makefile.sublime-package
    

โปรดทราบว่าเป็นไฟล์ zip จริงๆ คัดลอกเปลี่ยนชื่อด้วย. zip ท้ายไฟล์และแตกไฟล์ Makefile.tmLanguage

  1. แก้ไขใหม่Makefile.tmLanguageโดยเพิ่มคีย์และสตริง "firstLineMatch" หลังส่วน "fileTypes" ในตัวอย่างด้านล่างสองบรรทัดสุดท้ายเป็นของใหม่ (ควรเพิ่มโดยคุณ) <string>ส่วนถือนิพจน์ปกติที่จะช่วยให้การเน้นไวยากรณ์สำหรับไฟล์ที่ตรงกับบรรทัดแรก นิพจน์นี้รู้จักสองรูปแบบ: " -*-Makefile-*-" และ " vim:syntax=make"

    ...
    <key>fileTypes</key>
    <array>
        <string>GNUmakefile</string>
        <string>makefile</string>
        <string>Makefile</string>
        <string>OCamlMakefile</string>
        <string>make</string>
    </array>
    
    <key>firstLineMatch</key>
    <string>^#\s*-\*-Makefile-\*-|^#.*\s*vim:syntax=make</string>
    
  2. วางการแก้ไขMakefile.tmLanguageในไดเรกทอรีการตั้งค่าผู้ใช้:

    ~/.config/sublime-text-3/Packages/User/Makefile.tmLanguage
    

ไฟล์ทั้งหมดที่ตรงกับกฎบรรทัดแรกควรเปิดใช้งานการเน้นไวยากรณ์เมื่อเปิด


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