Как да зададете клавишна комбинация за конвертиране от раздели към интервали в sublimetext2

Каква е опцията във файла Key Bindings, която бих използвал, за да настроя клавишна комбинация за елемента от менюто

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)


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

Преобразуване на интервали в раздели (от Eric Muyser):

{ "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" във вашата папка "Packages/User"

[
  {
    "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