Как установить сочетание клавиш для преобразования табуляции в пробелы в sublimetext2

Какую опцию в файле привязки клавиш я бы использовал для настройки сочетания клавиш для пункта меню?

View -> Indentation -> Convert Indentation To Spaces

Я пробовал следующее, но не могу понять, как активировать опцию, которую я вижу в вышеупомянутом меню.

{ "keys": ["super+t"], "command": "convert_to_tabs" },
{ "keys": ["shift+super+t"], "command": "convert_to_spaces" },

person Neil Holcomb    schedule 17.01.2013    source источник


Ответы (1)


Простая версия

Преобразование пробелов в табуляции (от Эрика Мюйзера):

{ "keys": ["ctrl+shift+x"], "command": "unexpand_tabs", "args": { "set_translate_tabs": false } }

Преобразование табуляции в пробелы (из mVChr):

{ "keys": ["ctrl+shift+y"], "command": "expand_tabs", "args": { "set_translate_tabs": true } }

Оригинальный ответ ниже


Вы можете сделать это с помощью по одной команде (expand_tabs и unexpand_tabs), но это будет Также неплохо было бы включить «Отступ с использованием пробелов». Вот макрос, который я где-то видел (не помню где.)

Версия макроса

Вкладки -> Пробелы

Сохраните как «convert_tabs_to_spaces.sublime-macro» внутри папки «Пакеты/Пользователь».

[
  {
    "args":
    {
      "set_translate_tabs": true
    },
    "command": "expand_tabs"
  }
]

Добавьте это в свой файл привязок клавиш:

    { "keys": ["ctrl+shift+x"], "command": "run_macro_file", "args": {"file": "Packages/User/convert_tabs_to_spaces.sublime-macro"} },

Пробелы -> Вкладки

Похожее имя файла и привязка клавиш

[
  {
    "args":
    {
      "set_translate_tabs": false
    },
    "command": "unexpand_tabs"
  }
]

Я использовал это, пока не увидел, что вы можете щелкнуть левой кнопкой мыши параметр отступа в строке состояния и изменить его оттуда.

Редактировать:

Версия плагина

взято отсюда

"convert_tabs_to_spaces.py"

import sublime, sublime_plugin

class ConvertTabsToSpaces(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.run_command('expand_tabs', {"set_translate_tabs": True})

.

привязка клавиш: { "keys": ["ctrl+shift+x"], "command": "convert_tabs_to_spaces"},

"convert_spaces_to_tabs.py"

import sublime, sublime_plugin

class ConvertSpacesToTabs(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.run_command('unexpand_tabs', {"set_translate_tabs": False})

.

привязка клавиш: { "keys": ["ctrl+shift+y"], "command": "convert_spaces_to_tabs"},

person d_rail    schedule 17.01.2013
comment
Файл макроса кажется ненужным. Это может быть просто: {keys: [ctrl+shift+x], command: unexpand_tabs, args: {set_translate_tabs: false}} - person Eric Muyser; 18.03.2013
comment
@EricMuyser Потрясающе! Спасибо! Также добавлено следствие для преобразования табуляции в пробелы: { "keys": ["whatever"], "command": "expand_tabs", "args": { "set_translate_tabs": true } } - person mVChr; 24.10.2013
comment
Я смог заставить это работать, только установив set_translate_tabs в true в обоих вариантах: { "keys": ["super+ctrl+t"], "command": "unexpand_tabs", "args": { "set_translate_tabs": true } }, { "keys": ["super+ctrl+s"], "command": "expand_tabs", "args": { "set_translate_tabs": true } } - person Paul; 21.10.2016