Короткая версия состоит в том, что файлы sublime-build
и sublime-snippet
, которые поставляются с Sublime для поддержки Python, предназначены для Python версии 2, а не для Python версии 3. Я не знаю, было ли это только из-за того, что использовалосьизначально или если это делается специально.
В Sublime ресурсы обычно относятся к конкретному языку на основе scope
, предоставленной определением синтаксиса.Так, например, фрагменты для Python связаны с source.python
, ваш примерный файл сборки использует эту область, чтобы знать, что он применяется к файлам Python, и так далее.Таким образом, независимо от того, какую сборку вы используете, это никак не влияет на предлагаемые фрагменты.
Например, если вы используете команду View Package File
из палитры команд и вводитетекст python for snippet
, список ресурсов пакета будет отфильтрован до Python/Snippets/for.sublime-snippet
;нажав Введите , чтобы увидеть, что ресурс показывает это:
<snippet>
<tabTrigger>for</tabTrigger>
<scope>source.python</scope>
<description>For Loop</description>
<content><![CDATA[
for ${1:x} in ${2:xrange(1,10)}:
${0:pass}
]]></content>
</snippet>
Здесь tabTrigger
указывает как вставка фрагмента, scope
управляет где вставляет и content
контролирует какие вставляет.Таким образом, чтобы изменить его на поддержку Python 3, вам нужно либо создать свой собственный фрагмент, либо изменить существующий.
Проблема с созданием собственного фрагмента заключается в том, что он будет добавлен в список фрагментов. включая нарушающего, который позволяет ему, возможно, по-прежнему срабатывать, когда вы этого не ожидаете.Также не существует общего «простого» способа отключения отдельных фрагментов.
Таким образом, как правило, наилучшим способом действий будет использование пакета PackageResourceViewer .Установите его, выберите PackageResourceViewer: Open Resource
в командной палитре, затем выберите тот же файл, как указано выше, и измените содержимое фрагмента (например, замените xrange
на range
) и сохраните файл.
ЭтоSublime заменит существующий фрагмент вашей отредактированной версией, чтобы он занял место существующего и работал так, как вы хотите.