Мой вопрос связан с этим вопросом об отключении соответствия скобок в Sublime Text 2.

Sublime Text 2/3 имеет настройку "auto_match_enabled", которая автоматически объединяет разделители ([], {}, "" и т.д.). В большинстве случаев это отличная функция. Однако при написании определенных документов это мешает.

Например, в LaTeX используются двойные кавычки (почти?) исключительно добавить в умлаутс. Так, например, n\"aive компилируется как näive . В этой ситуации автоматическая вставка совпадающей двойной кавычки не помогает - она добавляет нажатие клавиши для ее удаления. Учитывая это, я хотел бы отключить автоматическое сопоставление только для двойных кавычек и только в файлах с расширением .tex . К сожалению, глобальная настройка выглядит как сделка "все или ничего" - нет очевидного (для меня) способа ограничить ее охват.

Как отключить автоматическое сопоставление для отдельного типа разделителя в данном контексте? В частности, как отключить автоматическое сопоставление для двойных кавычек в файлах с расширением .tex ?

2 ответа2

2

Боюсь, у меня нет решения только для двойных кавычек, но если вы хотите отключить только для LaTeX, вы можете создать следующий файл:

(Это для Sublime Text 3 - я думаю, что это похоже на Sublime Text 2)

%APPDATA%\Sublime Text 3\Packages\LaTeX\LaTeX.sublime-settings

Вам может понадобиться создать структуру папок, и вы можете добавить любые специфические настройки LaTeX здесь, в вашем случае:

{
    "auto_match_enabled": false,
}

Как я сказал, и, как я думаю, вы знаете, это будет применяться ко всем соответствиям, у меня нет ответа только для двойных кавычек, я боюсь, но, надеюсь, это поможет со специфической стороной LaTeX.

1

Подобно ответу Jonno выше, вы можете изменить настройки раскладки клавиатуры для данного пакета таким же образом:

Создайте Default.sublime-keymap в каталоге LaTeX (при необходимости создайте папки):

Windows:
%APPDATA%\Sublime Text 3\Packages\LaTeX\Default.sublime-keymap

macOS:
~/Library/Application Support/Sublime Text 3/Packages/LaTeX/Default.sublime-keymap

Linux:
~/.config/sublime-text-3/Packages/LaTeX/Default.sublime-keymap

Затем вы можете скопировать и вставить стандартные раскладки клавиатуры (« Preferences -> Key Bindings - Default) для двойных кавычек в этот новый файл. Затем я изменил действия этих привязок клавиш, чтобы больше не вставлять пары в кавычках. Это результат моих изменений:

[
    // changed snippet arg contents from `"\"$0\""` to `"\""` to prevent inserting paired quotes
    { "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\""}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
            { "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\"a-zA-Z0-9_]$", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true }
        ]
    },
    // changed the command and args from `move` to the same command/args as above to prevent skipping auto-inserted quotes
    { "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\""}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true },
            { "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
        ]
    }
]

Заметки:

  • Я не изменял оператор backspace (видимый в таблице ключей по умолчанию), когда был заключен в кавычки. Я не совсем уверен, как исправить или если поведение некорректно или нет
  • Ваши стандартные сочетания клавиш могут отличаться от моих, не стесняйтесь вносить те же изменения, которые я описал в комментариях выше
  • Я полагаю, вы можете удалить весь context раздел, и это сработает, но я сам не пробовал.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .