Wie erzwinge ich das Öffnen neuer Dateien im linken Bereich/in der linken Spalte in Sublime Text 2?

Wie erzwinge ich das Öffnen neuer Dateien im linken Bereich/in der linken Spalte in Sublime Text 2?

Ich verwende Sublime Text 2 unter Windows 7 und habe es so konfiguriert, dass es 2 Spalten für die geteilte Bearbeitung verwendet (im Menü: Ansicht > Layout > Spalten: 2), sodass ich jetzt 2 Bereiche habe. Wenn ich eine neue Datei über Total Commander F4 Bearbeiten oder das Kontextmenü „Mit Sublime Text 2 öffnen“ im Explorer öffne, wird die neue Datei im aktuell aktiven Bereich geöffnet. Dies ist kein Problem, wenn der linke Bereich aktiv ist, aber wenn der rechte Bereich aktiv ist, wird sie im rechten Bereich geöffnet, und das ist das Verhalten, das ich nicht möchte. Ist es möglich, neue Dateien zum Bearbeiten immer im linken Bereich zu öffnen? Wenn ja, wie mache ich das?

Zarek.

Antwort1

In Sublime Text 2 gibt es hierfür keine native Möglichkeit. Sie möchten zur linken Fenstergruppe (Gruppe 0) wechseln, eine Datei öffnen und dann (möglicherweise, das geht aus Ihrer Frage nicht hervor) wieder zur rechten Fenstergruppe (Gruppe 1) wechseln können.

Dies kann erreicht werden durch eine Reihe vonSublime Text-Befehle. Insbesondere move_to_group,prompt_open_file,move_to_group.

Leider funktioniert Sublimes native Fähigkeit, Befehle und Makros aneinanderzureihen, nur bei Textbearbeitungsbefehlen, nicht bei Fensterbefehlen. Und Tastenkombinationen akzeptieren nur einzelne Befehle. Sie haben also zwei Möglichkeiten

Plugin-freie Option

Geben Sie einfach Strg+1 ein, bevor Sie Strg+O drücken. So können Sie recht schnell zur linken Fenstergruppe wechseln und die Datei öffnen. Bei Bedarf können Sie anschließend mit Strg+2 zurückwechseln.

Die vollständige (kompliziertere) Lösung

Sie können diePlugin-Code in den Foren von Sublime gefundenum einen Befehl zum Ausführen mehrerer Befehle zu erstellen. Sie können dann eine Tastenkombination für das erstellen, was Sie möchten. Ich vermute, Sie möchten, dass die Standardoption zum Öffnen einfach überschrieben wird, also binden wir sie an Strg+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"}
          ]}}

Dies funktioniert, nachdem Sie das Plugin über den unten wiedergegebenen Link installiert haben. Um es zu installieren, können Sie es einfach als .py-Datei in Ihrem Ordner %APPDATA%\Sublime Text 2\Packages\User installieren.

# 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)

verwandte Informationen