The first cross platform terminal for Sublime Text.
Unix shell | Cmd.exe |
---|---|
Terminal in panel | |
This package is heavily inspired by TerminalView. Compare with TerminalView, this has
- Windows support
- continuous history
- easily customizable themes
- unicode support
- 256 colors support
- better xterm support
- terminal panel
- imgcat support (PS: it also works on Linux / WSL)
Package Control.
- run
Terminus: Open Default Shell in View
You may find these key bindings useful. To edit, run Preferences: Terminus Key Bindings
.
- toggle terminal panel
{
"keys": ["alt+`"], "command": "toggle_terminus_panel"
}
- open a terminal view at current file directory
{
"keys": ["ctrl+alt+t"], "command": "terminus_open", "args": {
"config_name": "Default",
"cwd": "${file_path:${folder}}"
}
}
or by passing a custom cmd
{
"keys": ["ctrl+alt+t"], "command": "terminus_open", "args": {
"cmd": "ipython",
"cwd": "${file_path:${folder}}"
}
}
(check the details for the arguments of terminus_open
below)
- Bash: add the following in
.bash_profile
or.bashrc
bind '"\e[1;3C": forward-word'
bind '"\e[1;3D": backward-word'
- Zsh: add the following in
.zshrc
bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word
Some programs, such as julia, does not recognize the standard keycodes for alt+left
and alt+right
. You could
bind them to alt+b
and alt+f
respectively
[
{ "keys": ["alt+left"], "command": "terminus_keypress", "args": {"key": "b", "alt": true}, "context": [{"key": "terminus_view"}] },
{ "keys": ["alt+right"], "command": "terminus_keypress", "args": {"key": "f", "alt": true}, "context": [{"key": "terminus_view"}] }
]
- run
Preferences: Terminus Command Palette
and add, for example
{
"caption": "Terminus: Open Default Shell at Current Location",
"command": "terminus_open",
"args" : {
"config_name": "Default",
"cwd": "${file_path:${folder}}"
}
}
or by passing custom cmd
{
"caption": "Terminus: Open iPython",
"command": "terminus_open",
"args" : {
"cmd": "ipython",
"cwd": "${file_path:${folder}}",
"title": "iPython"
}
}
(check the details for the arguments of terminus_open
below)
- A terminal could be opened using the command
terminus_open
with
window.run_command(
"terminus_open", {
"config_name": None, # the shell config name, use "Default" for the default config
"cmd": None, # the cmd to execute if config_name is None
"cwd": None, # the working directory
"working_dir": None, # alias of "cwd"
"env": {}, # extra environmental variables
"title": None, # title of the view
"panel_name": None, # the name of the panel if terminal should be opened in panel
"tag": None # a tag to identify the terminal
}
)
The fields cmd
and cwd
understand Sublime Text build system variables.
-
the setting
view.settings().get("terminus_view.tag")
can be used to identify the terminal and -
keybind can be binded with specific tagged terminal
{
"keys": ["ctrl+alt+w"], "command": "terminus_close", "context": [
{ "key": "terminus_view.tag", "operator": "equal", "operand": "YOUR_TAG"}
]
}
- text can be sent to the terminal with
window.run_command(
"terminus_send_string",
{
"string": "ls\n",
"tag": None # or the tag which is passed to "terminus_open"
}
)
If tag
is not provided, the text will be sent to the first terminal found in the current window.
Terminus
as a build system. For example, the following can be added to your project settings to allow "SSH to Remote" build system.
{
"build_systems":
[
{
"cmd":
[
"ssh", "user@example.com"
],
"name": "SSH to Remote",
"target": "terminus_open",
"working_dir": "$folder"
}
]
}
If you are using DA UI and your terminal panel has weired background color,
try playing with the setting panel_background_color
in DA UI: Theme Settings
.
{
"panel_background_color": "$background_color"
}
This package won't be possible without pyte, pywinpty and ptyprocess.