Bagaimana cara menyesuaikan jenis file untuk asosiasi sintaksis dalam Sublime Text?

Jawaban:

1166

Dalam Sublime Text (dikonfirmasi dalam v2.x dan v3.x) ada perintah menu:

Lihat -> Sintaks -> Buka semua dengan ekstensi saat ini sebagai ...

TedG
sumber
18
apakah Anda tahu bagaimana ini tercermin dalam file konfigurasi teks luhur? Saya mencoba untuk mencapai ini dengan resep koki otomatis dan saya tidak tahu apa yang harus diatur dalam pengaturan JSON.
brad
24
Berfungsi secara identik dalam Sublime Text 3 juga. Terima kasih @TedG
fusion27
11
@brad Buka pengaturan khusus sintaksis (Scala.sublime-settings di folder Users), dan tambahkan padanya: {"extensions": ["scala", "sbt"]}
omittones
5
Juga tidak berfungsi seperti yang diharapkan untuk nama file dengan ekstensi ganda. Mengedit *.sublime-settings tidak berfungsi.
MM.
9
Bagaimana Anda mengatur sintaks default untuk file yang dibuka yang tidak memiliki ekstensi?
iring
38

Saya telah menemukan jawabannya (dengan memeriksa lebih lanjut struktur file konfigurasi Sublime 2):

Saya harus membuka

~/.config/sublime-text-2/Packages/Scala/Scala.tmLanguage

Dan edit untuk menambahkan sbt(ekstensi file yang saya ingin dibuka sebagai file kode Scala) ke array setelah fileTypeskunci:

<dict>
  <key>bundleUUID</key>
  <string>452017E8-0065-49EF-AB9D-7849B27D9367</string>
  <key>fileTypes</key>
  <array>
    <string>scala</string>
    <string>sbt</string>
  <array>
  ...

PS: Mungkin ada cara yang lebih baik, sesuatu seperti tempat yang tepat untuk menempatkan penyesuaian saya (insted memodifikasi paket sendiri), saya masih ingin tahu.

Ivan
sumber
1
sekarang di/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
Guillaume Massé
2
Saya pikir adalah perpustakaan pengguna daripada perpustakaan sistem:~/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
seren
4
@ Eric, Anda harus membaca lebih hati-hati .. Ini membuka semua file dengan ekstensi spesifik dengan sintaks yang ditentukan. Sebagian besar waktu, inilah yang Anda inginkan.
Vincent Ketelaars
28

Saya menempatkan perubahan khusus pada paket Pengguna:

*nix: ~/.config/sublime-text-2/Packages/User/Scala.tmLanguage
*Windows: %APPDATA%\Sublime Text 2\Packages\User\Scala.tmLanguage

Yang juga berarti itu dalam format JSON:

{
  "extensions":
  [
    "sbt"
  ]
}

Ini adalah tempat yang sama

View -> Syntax -> Open all with current extension as ...

item menu menambahkannya (membuat file jika tidak ada).

squeegee
sumber
2
Perhatikan bahwa ini adalah satu-satunya metode (setidaknya dalam ST2) yang memungkinkan untuk menetapkan sintaks khusus untuk file dengan ekstensi ganda (misalnya, whatever.twig.html), karena metode menu hanya menggunakan yang terakhir!
MM.
1
Saya menemukan karya-karya ini dengan Sublime Text 3. Saya menggunakan View -> Syntax -> Open all with current extension as ...untuk membuat file bahasa Markdown.sublime-settingsdi ~/Library/Application Support/Sublime Text 3/Packages/User/, dan kemudian diedit file ini untuk menambahkan ekstensi file tambahan.
Jake Rayson
13

Ada plugin yang sangat baik yang disebut ApplySyntax (sebelumnya DetectSyntax) yang menyediakan beberapa jenis lain untuk pencocokan sintaksis file. memungkinkan ekspresi regex dll.

Kaushik Gopal
sumber
9

Ada metode cepat untuk mengatur sintaks: Ctrl+ Shift+ P, lalu ketik di kotak input

ss + (jenis yang ingin Anda atur)

misalnya: ss html +Enter

dan ss berarti "atur sintaks"

ini benar-benar lebih cepat daripada memeriksa di kotak centang menu.

Halo Wor1d
sumber
7

untuk ST3

$ language = "bahasa yang kamu inginkan"

jika ada,

pergi ke ~ / .config / sublime-text-3 / Packages / User / $ language .sublime-settings

lain

buat ~ / .config / sublime-text-3 / Packages / User / $ language .sublime-settings

dan mengatur

{"extensions": [" yourextension "]}

Dengan cara ini Anda dapat mengaktifkan sintaks untuk ekstensi komposit (mis. Sql.mustache, js.php, dll ...)

xpeiro
sumber
2
Jadi untuk mengaitkan file .js.php dengan JavaScript, saya harus membuat file bernama Javascript.sublime-settings diisi dengan { "extensions": [ "js.php" ] }?
Austin Schmidt
Ya jika file tidak ada, jika sudah ada tambahkan saja ekstensi yang Anda inginkan pada array "extensions".
xpeiro