
Estou usando o Sublime Text 2 no Windows 7, configurei-o para usar 2 colunas para edição dividida (no menu: Exibir > Layout > Colunas: 2), então agora tenho 2 painéis. Quando eu abro um novo arquivo através do Total Commander F4 Edit ou do menu de contexto do Explorer "Abrir com Sublime Text 2", o novo arquivo é aberto no painel atualmente ativo, isso não é um problema quando o painel esquerdo está ativo, mas quando o painel direito está ativo então ele abre no painel direito, que é o comportamento que não quero. É possível sempre abrir novos arquivos para edição no painel esquerdo? Se sim, como faço isso?
Czarek.
Responder1
Não há uma maneira nativa de fazer isso no Sublime Text 2. O que você deseja é poder mudar para o grupo de janelas esquerdo (grupo 0), abrir um arquivo e então (possivelmente, não está claro na sua pergunta) voltar para o grupo de janelas direito (grupo1).
Isto pode ser conseguido com uma série deComandos de texto sublime. Especificamente move_to_group,prompt_open_file,move_to_group.
Infelizmente, a capacidade nativa do Sublime de agrupar comandos e macros só funciona em comandos de manipulação de texto, não em comandos de janela. E os atalhos de teclado aceitam apenas comandos únicos. Então você tem 2 opções
Opção sem plug-in
Basta digitar Ctrl+1 antes de pressionar Ctrl+O. Esta é uma maneira bastante rápida de mudar para o grupo de janelas esquerdo e abrir o arquivo. Você pode então usar Ctrl+2 para voltar posteriormente, se necessário.
A solução completa (mais envolvente)
Você pode instalar ocódigo do plugin encontrado nos fóruns do Sublimepara criar um comando "executar vários comandos". Você pode então criar um atalho de teclado para o que deseja. Suponho que você gostaria apenas de substituir a opção de abertura padrão, então vamos vinculá-la 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"}
]}}
Isso funcionará depois de instalar o plugin do link reproduzido abaixo. Para instalá-lo, você pode simplesmente instalá-lo como um arquivo .py na pasta %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)