Причина этого в том, что пакет Ruby
, поставляемый с Sublime, включает ряд фрагментов, и один из них вставляет блок begin-rescue-end
в ответ на текст begin
, за которым следует ключ автозаполнения. Есть несколько способов предотвратить это, в том числе изменить способ запуска фрагмента или его содержимое.
Во-первых, вы можете настроить параметр auto_complete_commit_on_tab
:
// By default, auto complete will commit the current completion on enter.
// This setting can be used to make it complete on tab instead.
// Completing on tab is generally a superior option, as it removes
// ambiguity between committing the completion and inserting a newline.
"auto_complete_commit_on_tab": false,
Как описано в комментарии, этот параметр определяет, используется ли Enter или Tab для выбора автозаполнения во всплывающем окне, по умолчанию - Enter.
Судя по описанию проблемы, вы можете работать с этим параметром, установленным по умолчанию; таким образом, всякий раз, когда вы вводите begin
, в списке появляется автозаполнение для фрагмента, а нажатие Enter выбирает элемент и расширяет его.
Если это так, то установка значения параметра на true
остановит это; когда вы набираете begin
, всплывающее окно по-прежнему будет предлагать фрагмент, но когда вы нажмете Enter, он будет интерпретирован как «обычный» ввод, и фрагмент не будет расширяться.
Это также имеет то преимущество, что вы по-прежнему можете использовать фрагмент по назначению вне комментариев, чтобы быстро настроить блокировку восстановления. Однако обратите внимание, что если вы используете всплывающее окно автозаполнения в других случаях, это потребует от вас тренировки мозга, что вам нужно нажимать Tab там, где вы раньше нажимали Enter.
Кроме того, вы можете отключить фрагмент или изменить то, что он вставляет, чтобы сделать вашу жизнь немного лучше. Для этого вы должны выбрать Preferences: Browse Packages
на палитре команд или в главном меню, чтобы открыть папку Packages
.
Внутри этой папки создайте папку с именем Ruby
, а затем внутри этой папки создайте папку с именем Snippets
, а внутри этой папки файл с именем Wrap-in-Begin-Rescue-End.sublime-snippet
(это важно; имена должны быть точными для всех файлов и папок. здесь).
Если при этом вы создадите пустой файл, то фрагмент в пакете Ruby
будет полностью отключен и больше не сможет запускаться.
В качестве альтернативы вы можете вместо этого предоставить создаваемому вами файлу содержимое, которое выглядит примерно так:
<snippet>
<content><![CDATA[
begin
$0
=end
]]></content>
<tabTrigger>begin</tabTrigger>
<scope>source.ruby - comment</scope>
<description>complete block comment</description>
</snippet>
Это заставит текст begin
расшириться до текста в области содержимого фрагмента, который добавит текст begin
, за которым следует закрытие комментария блока, и оставит курсор посередине, где находится $0
.
Вы можете изменить это по мере необходимости, например, изменить отступ или положение курсора и т. Д.
person
OdatNurd
schedule
13.08.2019