Вопрос Как заставить открывать новые файлы в левой панели / столбце в Sublime Text 2?


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

Czarek.


2
2018-01-08 20:47


происхождения




ответы:


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

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

К сожалению, собственная способность Sublime для объединения команд, макросов, работает только с командами обработки текста, а не с командами окна. И keybindings принимают только одиночные команды. Итак, у вас есть 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)

2
2018-01-13 04:51