Установить синтаксис по умолчанию для другого типа файла в Sublime Text 2

731

Как установить тип файла по умолчанию для определенного расширения файла в Sublime Text 2? В частности, я хочу, чтобы файлы * .cfg по умолчанию имели подсветку синтаксиса Ini, но я не могу понять, как я могу создать этот пользовательский параметр.

keiththomps
источник

Ответы:

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-19: На данный момент это также работает для Sublime Text 3.

Колин Р
источник
2
Вы пробовали Open all with current extension as...или просто устанавливали синтаксис с помощью выбора в Syntaxменю?
Колин Р.
Подтверждено. Вам нужно перезапустить Sublime, чтобы изменения вступили в силу. Кроме того, это не меняет «активный» файл - вы можете увидеть, посмотрев внизу справа на выбранный им синтаксис. Перезапуск исправляет это все же.
dmackerman
8
Можно ли это сделать для каждого проекта? Например, для одного проекта мне может потребоваться синтаксис Mako для файлов .html; в то время как другой может использовать другой синтаксис.
Кен Киндер
44
Это все еще метод, используемый в ST3 (по состоянию на сборку 3010). Кажется, перезапуск не требуется, и все активные файлы с расширением обновляются автоматически.
tbeseda
3
@ziyuang - убедитесь, что у вас есть курсор где-то в открытом файле.
Ричард Марскелл - Дракир
148

Перейдите к a Packages/User, создайте (или отредактируйте) .sublime-settingsфайл с именем в соответствии с синтаксисом, в который вы хотите добавить расширения, Ini.sublime-settingsв вашем случае, затем напишите туда что-то вроде этого:

{
    "extensions":["cfg"]
}

А затем перезапустите Sublime Text

Киз
источник
NB. Синтаксис, который вы хотите использовать, чувствителен к регистру (например, CSSдля css), и это отменит настройку через пользовательский интерфейс (см. Сообщение @ Colin)
ForbesLindesay
@ Элланд Я открыл проблему для проблемы.
JJD
29
Мне проще с возвышенным текстом 2/3, чтобы открыть свой файл, а затем выбрать синтаксис, который вы хотите использовать. Затем нажмите «Настройки» -> «Настройки» - «Дополнительно» -> «Синтаксис» - «Пользователь». И он создаст этот файл для вас. Просто вставьте указанный выше код, сохраните и перезапустите.
kokorohakai
Использовал этот способ, потому что мне удалось удалить файл настроек, который переопределял мои настройки через пользовательский интерфейс
turbo2oh
Есть ли способ настроить это для конкретного проекта?
Steinybot
21

В ST2 есть пакет, который вы можете установить, называемый Default FileType, который делает именно это.

Больше информации здесь .

trejox
источник
1
This package sets the default file type of new files to be either the same as the current file, or a predefined default. Именно то, что я искал! Спасибо
Рикардо Сапорта
в ST3 это тоже работает! просто нужно немного поработать вручную (сохраните DefaultFileType в пути пользователя ST3.
staticor
5

Вы можете включить подсветку синтаксиса в зависимости от содержимого файла.

Например, мои Makefiles независимо от их расширения в первой строке выглядят следующим образом:

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

Это типичная практика для других редакторов, таких как vim.

Однако, чтобы это работало, вам нужно изменить 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
    

Все файлы, соответствующие правилу первой строки, должны включать подсветку синтаксиса при открытии.

elomage
источник
Это было полезно. Приятно знать, что это возможно, но редактирование каждого файла .sublime-package для каждого типа файла, который может содержать такой шаблон, нецелесообразно. Поэтому я, вероятно, не буду использовать эту функцию.
Трэвис Спенсер