
Estoy usando Sublime Text 2 en Windows 7, lo configuré para usar 2 columnas para la edición dividida (en el menú: Ver > Diseño > Columnas: 2), así que ahora tengo 2 paneles. Cuando abro un archivo nuevo a través de Total Commander F4 Edit o el menú contextual del Explorador "Abrir con Sublime Text 2", el nuevo archivo se abre en el panel actualmente activo, esto no es un problema cuando el panel izquierdo está activo, pero cuando el panel derecho está activo, entonces lo abre en el panel derecho, que es el comportamiento que no quiero. ¿Es posible abrir siempre archivos nuevos para editarlos en el panel izquierdo? Si es así, ¿cómo hago eso?
Czarek.
Respuesta1
No existe una forma nativa de hacer esto en Sublime Text 2. Lo que desea es poder cambiar al grupo de ventanas de la izquierda (grupo 0), abrir un archivo y luego (posiblemente, no quede claro en su pregunta) volver a el grupo de ventanas derecho (grupo1).
Esto se puede lograr con una serie deComandos de texto sublimes. Específicamente move_to_group,prompt_open_file,move_to_group.
Desafortunadamente, la capacidad nativa de Sublime para encadenar comandos, macros, solo funciona con comandos de manipulación de texto, no con comandos de ventana. Y las combinaciones de teclas solo aceptan comandos únicos. Entonces tienes 2 opciones
Opción sin complementos
Simplemente escriba Ctrl+1 antes de presionar Ctrl+O. Esta es una forma bastante rápida de cambiar al grupo de ventanas de la izquierda y abrir el archivo. Luego puede usar Ctrl+2 para volver a cambiar si es necesario.
La solución completa (más complicada)
Puedes instalar elcódigo de complemento encontrado en los foros de Sublimepara crear un comando "ejecutar múltiples comandos". Luego puede crear una combinación de teclas para lo que desee. Supongo que querrás que simplemente anule la opción de apertura predeterminada, así que vinculémosla a 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"}
]}}
Esto funcionará después de instalar el complemento desde el enlace que se reproduce a continuación. Para instalarlo, puede instalarlo como un archivo .py en su carpeta %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)