ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

External​Tools

by FelixBoers ST3

Run any external tool with an keyboard shortcut and/or via the command palette.

Details

Installs

  • Total 259
  • Win 164
  • OS X 37
  • Linux 58
Mar 26 Mar 25 Mar 24 Mar 23 Mar 22 Mar 21 Mar 20 Mar 19 Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 13 Mar 12 Mar 11 Mar 10 Mar 9 Mar 8 Mar 7 Mar 6 Mar 5 Mar 4 Mar 3 Mar 2 Mar 1 Feb 28 Feb 27 Feb 26 Feb 25 Feb 24 Feb 23 Feb 22 Feb 21 Feb 20 Feb 19 Feb 18 Feb 17 Feb 16 Feb 15 Feb 14 Feb 13 Feb 12 Feb 11 Feb 10
Windows 0 2 1 0 0 0 0 0 2 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0
OS X 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0
Linux 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

External Tools - Sublime Text

Run any external tool with an keyboard shortcut and/or via the command palette.

Quickstart

  • Install via PackageControl: External Tools
  • Open Preferences –> Key bindings
  • Add { "keys": ["alt+1"], "command": "external_tools_run", "args": {"cmd": ["explorer.exe", "/select,", "$file"]}}
  • Save & close
  • Press ALT+1

Installation

Package Control

If you have PackageControl installed, you can use it to install the package.

Just type CTRL+SHIFT+P (or if you're on a mac: CMD+SHIFT+P) to bring up the command pallete and pick Package Control: Install Package from the dropdown, search and select External Tools there and you're all set.

Manual installation

  • Enter directory through Preferences –> Browse Packages… in the Sublime Text menu.
  • Run the following command from your command line

    git clone https://github.com/FelixBoers/sublime-external-tools.git ./ExternalTools
    

Usage

Custom key bindings

You can add custom keybinding by go to Settings -> Key Bindings and bind your keystrokes to the external_tools_run command.

  • Open Windows Explorer with the current file selected: “json { "keys”: [“alt+1”], “command”: “external_tools_run”, “args”: {“cmd”: [“explorer.exe”, “/select,”, “$file”]}}

  • Open Git bash in the current project root or if no project is opened in the root of the first opened folder “json { "keys”: [“alt+2”], “command”: “external_tools_run”, “args”: {“cmd”: [“C:/Program Files/Git/bin/bash.exe”], “working_dir”: “${project_path:$folder}” }}

Custom entries in the command palette

In the same way you can define your own entries in the command palette (CTRL + SHIFT + P). Go to Preferences –> Package Settings –> External Tools –> Command Palette and add:

{
    "caption": "Cmd here",
    "command": "external_tools_run",
    "args": {
        "cmd": [ "cmd.exe", "/K"],
        "working_dir": "${project_path:$folder}"
    }
}

Shared configurations

If you want to open the app via key binding or via the command palette you can define the app in the plugin settings Preferences –> Package Settings –> External Tools –> Settings.

This is how a configuration could look like:

{
  "apps": [
    {
      "id": "explorer",
      "name": "Explorer",
      "cmd": [
        "explorer.exe",
        "/select,",
        "$file"
      ]
    },
    {
        "id": "cmd",
        "cmd": ["cmd.exe", "/K"],
        "working_dir": "$folder"
    }
  ]
}

The key binding configuration should then look like: “json { "keys”: [“alt+3”], “command”: “external_tools_run”, “args”: {“id”: “explorer” }}

And the command palette configuration like this:
```json
{ "caption": "Cmd here", "command": "external_tools_run", "args": { "id": "cmd" } }

All apps defined in the plugin settings are listed if you run External Tool via the command palette.

Variables

Along to all your system environment variables the following variables are getting expanded too:

Variable Description
$file The full path to the current file, e.g., C:\Files\Chapter1.txt
$file_path The directory of the current file, e.g., C:\Files
$file_extension The name portion of the current file, e.g., txt
$file_base_name The name only portion of the current file, e.g., Document
$packages The full path to the Packages folder
$folder The path to the first folder opened in the current project
$project The full path to the current project file
$project_path The directory of the current project file
$project_name The name portion of the current project file
$project_extension The extension portion of the current project file
$project_base_name The name-only portion of the current project file
$line_begin The current line of the current file or the first line of the selection
$line_end The current line of the current file or the last line of the selection
$line Same as $line_begin

Placeholder variables are supported too:

${project_name:Default}     # Use 'Default' as project name if no project is open
${project_path:$folder}        # If no project opened use first folder

The name of the placeholder is case sensitive!

Sample configurations

ConEmu with Git bash in current folder

{
  "apps": [
    {
      "id": "conemu_git",
      "name": "ConEmu (Git bash)",
      "cmd": [
        "C:\\\\Program Files\\\\ConEmu\\\\ConEmu64.exe",
        "/Single",
        "/Dir",
        "${folder}",
        "/Run",
        "{Git bash}"
      ]
    }
  ]
}

Windows Explorer with current file selected “json { "apps”: [ { “id”: “explorer”, “name”: “Explorer”, “cmd”: [ “explorer.exe”, “/select,”, “$file” ] } ] }