2

Я использую Sublime Text 2 в Windows 7, я настроил его на использование 2 столбцов для разделения (в меню: View> Layout> Columns: 2), так что теперь у меня есть 2 панели. Когда я открываю новый файл в редакторе Total Commander F4 или в контекстном меню проводника "Открыть с помощью Sublime Text 2", новый файл открывается в активной в данный момент панели, это не проблема, если активна левая панель, но когда активна правая панель, это открывает это в правой панели, которое является поведением, которое я не хочу. Можно ли всегда открывать новые файлы для редактирования в левой панели? Если так, то как мне это сделать?

Czarek.

1 ответ1

2

Там нет собственного способа сделать это в Sublime Text 2. Вам нужно иметь возможность переключиться на левую группу окон (группа 0), открыть файл, а затем (возможно, это не ясно из вашего вопроса) переключиться обратно на правую группу окон (группа1).

Это может быть достигнуто с помощью серии команд Sublime Text. В частности, move_to_group, prompt_open_file, move_to_group.

К сожалению, встроенная способность Sublime объединять команды, макросы, работает только с командами обработки текста, а не с командами окна. И сочетания клавиш принимают только отдельные команды. Итак, у вас есть 2 варианта

Опция без плагинов

Просто нажмите Ctrl+1, прежде чем нажать Ctrl+O. Это довольно быстрый способ переключиться на левую группу окон и открыть файл. Затем вы можете использовать Ctrl+2, чтобы переключиться обратно в случае необходимости.

Полное (более сложное) решение

Вы можете установить код плагина, найденный на форумах Sublime, чтобы создать команду "Выполнить несколько команд". Затем вы можете создать связывание клавиш для того, что вы хотите. Я предполагаю, что вы хотите, чтобы он просто переопределил опцию открытия по умолчанию, поэтому давайте свяжем его с Ctrl+O

{ "keys": ["ctrl+o"],
    "command": "run_multiple_commands",
    "args": {
         "commands": [
            {"command": "move_to_group", "args": {"group": 0 }, "context": "window"},
            {"command": "prompt_open_file", "context": "window"},
            {"command": "move_to_group", "args": {"group": 1 }, "context": "window"}
          ]}}

Это будет работать после установки плагина по ссылке, приведенной ниже. Чтобы установить его, вы можете просто установить его как файл .py в папку% APPDATA%\Sublime Text 2\Packages\User.

# run_multiple_commands.py
import sublime, sublime_plugin

# Takes an array of commands (same as those you'd provide to a key binding) with
# an optional context (defaults to view commands) & runs each command in order.
# Valid contexts are 'text', 'window', and 'app' for running a TextCommand,
# WindowCommands, or ApplicationCommand respectively.
class RunMultipleCommandsCommand(sublime_plugin.TextCommand):
  def exec_command(self, command):
    if not 'command' in command:
      raise Exception('No command name provided.')

    args = None
    if 'args' in command:
      args = command['args']

    # default context is the view since it's easiest to get the other contexts
    # from the view
    context = self.view
    if 'context' in command:
      context_name = command['context']
      if context_name == 'window':
        context = context.window()
      elif context_name == 'app':
        context = sublime
      elif context_name == 'text':
        pass
      else:
        raise Exception('Invalid command context "'+context_name+'".')

    # skip args if not needed
    if args is None:
      context.run_command(command['command'])
    else:
      context.run_command(command['command'], args)

  def run(self, edit, commands = None):
    if commands is None:
      return # not an error
    for command in commands:
      self.exec_command(command)

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