Atur sintaks default ke tipe file berbeda di Sublime Text 2

731

Bagaimana cara menetapkan tipe file default untuk ekstensi file tertentu di Sublime Text 2? Khususnya saya ingin memiliki file * .cfg default untuk memiliki penyorotan sintaks Ini tapi sepertinya saya tidak tahu bagaimana saya bisa membuat pengaturan kustom ini.

keiththomps
sumber

Jawaban:

1597

Dalam versi Sublime Text 2 (Build: 2139) saat ini, Anda dapat mengatur sintaks untuk semua file dari ekstensi file tertentu menggunakan opsi di bilah menu. Membuka file dengan ekstensi yang ingin menetapkan standar untuk dan menavigasi melalui menu berikut: View -> Syntax -> Open all with current extension as... ->[your syntax choice].

Diperbarui 2012-06-28: Build terbaru dari Sublime Text 2 (setidaknya sejak Build 2181) telah memungkinkan sintaks untuk ditetapkan dengan mengklik tipe sintaks saat ini di sudut kanan bawah jendela. Ini akan membuka menu pemilihan sintaks dengan opsi Open all with current extension as...di bagian atas menu.

Diperbarui 2016-04-19: Sampai sekarang, ini juga berfungsi untuk Sublime Text 3.

Colin R
sumber
2
Apakah Anda mencoba Open all with current extension as...atau hanya mengatur sintaks melalui pilihan di Syntaxmenu?
Colin R
Dikonfirmasi Anda harus memulai kembali Sublime agar perubahan tetap terjadi. Juga, ini tidak mengubah file "aktif" - Anda bisa tahu dengan melihat di kanan bawah pada sintaks yang dipilihnya. Restart perbaikannya.
dmackerman
8
Apakah ini dapat dilakukan berdasarkan proyek? Misalnya, untuk satu proyek, saya mungkin ingin sintaks Mako untuk file .html; sementara yang lain mungkin menggunakan sintaks lain.
Ken Kinder
44
Ini masih merupakan metode yang digunakan dalam ST3 (per build 3010). Tampaknya tidak diperlukan restart, dan semua file aktif dengan ekstensi diperbarui secara otomatis.
tbeseda
3
@ziyuang - Pastikan Anda memiliki kursor di suatu tempat di file yang terbuka.
Richard Marskell - Drackir
148

Buka Packages/User, buat (atau edit) .sublime-settingsfile yang dinamai Sintaks di mana Anda ingin menambahkan ekstensi, Ini.sublime-settingsdalam kasus Anda, lalu tulis di sana sesuatu seperti ini:

{
    "extensions":["cfg"]
}

Dan kemudian restart Sublime Text

kizu
sumber
NB Sintaks yang ingin Anda gunakan adalah case-sensitive (misalnya CSSuntuk css) dan ini akan mengesampingkan pengaturannya melalui UI (lihat posting @ Colin)
ForbesLindesay
@ Elland Saya membuka masalah untuk masalah ini.
JJD
29
Saya merasa lebih mudah dengan teks 2/3 luhur, untuk membuka file Anda, lalu pilih sintaks yang ingin Anda gunakan. Kemudian klik Preferensi-> Pengaturan - Lainnya -> Sintaks Khusus - Pengguna. Dan itu akan membuat file itu untuk Anda. Cukup tempel kode di atas, simpan, dan mulai ulang.
kokorohakai
Digunakan dengan cara ini karena saya dapat menghapus file pengaturan yang mengesampingkan pengaturan saya melalui UI
turbo2oh
Apakah ada cara untuk mengkonfigurasi ini untuk proyek tertentu?
steinybot
21

Di ST2 ada paket yang dapat Anda instal bernama Default FileType yang melakukan hal itu.

Info lebih lanjut di sini .

trejox
sumber
1
This package sets the default file type of new files to be either the same as the current file, or a predefined default. Persis apa yang saya cari! Terima kasih
Ricardo Saporta
di ST3, itu juga berfungsi! hanya perlu beberapa pekerjaan manual (simpan DefaultFileType di jalur pengguna ST3.
staticor
5

Anda dapat mengaktifkan penyorotan sintaksis berdasarkan konten file.

Sebagai contoh, Makefiles saya terlepas dari ekstensi mereka pada baris pertama sebagai berikut:

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

Ini adalah praktik khas untuk editor lain seperti vim.

Namun, agar ini berfungsi, Anda perlu memodifikasi Makefile.tmLanguagefile.

  1. Temukan file (untuk Sublime Text 3 di Ubuntu) di:

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

Catatan, itu benar-benar file zip. Salin, ganti nama dengan .zip di bagian akhir, dan ekstrak file Makefile.tmLanguage darinya.

  1. Edit yang baru Makefile.tmLanguagedengan menambahkan kunci dan string "firstLineMatch" setelah bagian "fileTypes". Pada contoh di bawah ini, dua baris terakhir adalah baru (harus ditambahkan oleh Anda). The <string>Bagian memegang ekspresi reguler, yang akan memungkinkan sintaks untuk file-file yang cocok dengan baris pertama. Ungkapan ini mengenali dua pola: " -*-Makefile-*-" dan " 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. Tempatkan yang dimodifikasi Makefile.tmLanguagedi direktori Pengaturan pengguna:

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

Semua file yang cocok dengan aturan baris pertama harus mengaktifkan penyorotan sintaks saat dibuka.

elomage
sumber
Ini sangat membantu. Senang mengetahui itu mungkin, tetapi mengedit setiap file .sublime-paket untuk setiap jenis file yang mungkin mengandung pola seperti itu tidak praktis. Karena itu, saya mungkin tidak akan menggunakan fitur ini.
Travis Spencer