Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wbond/sublime_terminal

Launch terminals from the current file or the root project folder
https://github.com/wbond/sublime_terminal

Last synced: about 10 hours ago
JSON representation

Launch terminals from the current file or the root project folder

Awesome Lists containing this project

README

        

# Sublime Terminal

Shortcuts and menu entries for opening a terminal at the current file, or the current root project folder in [Sublime Text](http://sublimetext.com/).

## Features

- Opens a terminal in the folder containing the currently edited file
- Opens a terminal in the project folder containing the currently edited file

## Installation

Download [Package Control](https://packagecontrol.io/) and use the *Package Control: Install Package* command from the command palette. Using Package Control ensures Terminal will stay up to date automatically.

## Usage

- **Open Terminal at File**
Press *ctrl+shift+t* on Windows and Linux, or *cmd+shift+t* on OS X
- **Open Terminal at Project Folder**
Press *ctrl+alt+shift+t* on Windows and Linux, or *cmd+alt+shift+t* on OS X

In addition to the key bindings, terminals can also be opened via the editor context menu and the sidebar context menus.

## Package Settings

The default settings can be viewed by accessing the ***Preferences > Package Settings > Terminal > Settings – Default*** menu entry. To ensure settings are not lost when the package is upgraded, make sure all edits are saved to ***Settings – User***.

- **terminal**
- The terminal to execute, will default to the OS default if blank. OS X users may enter *iTerm.sh* to launch iTerm if installed.
- *Default:* ***""***
- **parameters**
- The parameters to pass to the terminal. These parameters will be used if no [custom parameters](#custom-parameters) are passed via a key binding.
- *Default:* ***[]***
- **env**
- The environment variables changeset. Default environment variables used when invoking the terminal are inherited from sublime.
- The changeset may be used to overwrite/unset environment variables. Use `null` to indicate that the environment variable should be unset.
- *Default:* ***{}***

### Examples

Here are some example setups:

#### Cmder on Windows

```js
{
// Replace with your own path to cmder.exe
"terminal": "C:\\Program Files\\cmder_mini\\cmder.exe",
"parameters": ["/START", "%CWD%"]
}
```

#### xterm on GNU/Linux

```js
{
"terminal": "xterm"
}
```

#### gnome-terminal for CJK users on GNU/Linux

```js
{
"terminal": "gnome-terminal",
// Unset LD_PRELOAD which may cause problems for sublime with imfix
"env": {"LD_PRELOAD": null}
}
```
#### iTerm on OS X

```js
{
"terminal": "iTerm.sh"
}
```

#### iTerm on OS X with tabs

```js
{
"terminal": "iTerm.sh",
"parameters": ["--open-in-tab"]
}
```

#### iTerm2 v3 on OS X

```js
{
"terminal": "iTerm2-v3.sh"
}
```

#### Hyper on OS X

```js
{
"terminal": "hyper.sh"
}
```

#### [Windows Terminal](https://github.com/microsoft/terminal)

```js
{
"terminal": "C:/Users/yourusername/AppData/Local/Microsoft/WindowsApps/wt.exe",
"parameters": ["-d", "."]
}
```

## Custom Parameters

With the parameters argument to the *open_terminal* and *open_terminal_project_folder* commands, it is possible to construct custom terminal environments.

The following is an example of passing the parameters *-T 'Custom Window Title'* to a terminal. Please note that this example is just an example, and is tailored to the XFCE terminal application. Your terminal may use the `-T` option for some other features or setting. Custom key bindings such as this would be added to the file opened when accessing the *Preferences > Key Bindings – User* menu entry (the file name varies by operating system).

```json
{
"keys": ["ctrl+alt+t"],
"command": "open_terminal",
"args": {
"parameters": ["-T", "Custom Window Title"]
}
}
```

A parameter may also contain the *%CWD%* placeholder, which will be substituted with the current working directory the terminal was opened to.

```json
{
"keys": ["ctrl+alt+t"],
"command": "open_terminal",
"args": {
"parameters": ["-T", "Working in directory %CWD%"]
}
}
```