Sublime - change layout view in 2 columns
Table of Contents
#
Sublime - change layout view in 2 columns
Video
##
Setting
Preferences
-> Key Bindings - User
set key to use
[
{
"keys": ["super+ctrl+left"],
"command": "set_layout",
"args":
{
"cols": [0.0, 0.95, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
}
},
{
"keys": ["super+ctrl+right"],
"command": "set_layout",
"args":
{
"cols": [0.0, 0.05, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
}
}
]
#
Update
##
Add focus
If add focus, it need 2 commands so need write a python plugin
Tools
->New Plugin
# save as run_multiple.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 RunMultipleCommand(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)
Preferences
->Key Bindings - User
[
{
"keys": ["super+ctrl+left"],
"command": "run_multiple",
"args":
{
"commands": [
{
"command": "set_layout",
"args":
{
"cols": [0.0, 0.95, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
},
"context": "window"
},
{
"command": "focus_group",
"args": { "group": 0 },
"context": "window"
}
]
}
},
{
"keys": ["super+ctrl+right"],
"command": "run_multiple",
"args":
{
"commands": [
{
"command": "set_layout",
"args":
{
"cols": [0.0, 0.05, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
},
"context": "window"
},
{
"command": "focus_group",
"args": { "group": 1 },
"context": "window"
}
]
}
}
]
Refer - how to create a custom layout in sublime text 2? Refer - Custom layouts, Sublime text 2 Refer - set_layout reference Update Refer - Is it possible to chain key binding commands in sublime text 2? Refer - nilium / key-bindings.json