
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)