Glue is a plugin that provides an interface to your shell from the Sublime Text editor. It features command entry within the Sublime Text editor window, standard output display in an editor view, and it works with most system utilities. This includes any compiled or interpreted source that you develop which effectively allows you to create Sublime Text extensions in any programming language that your system supports.
Using this approach (the ppa one) to install Sublime Text would allow you to open it from the terminal using subl or sublime-text without the need of additional configuration. Improve this answer. Follow edited Apr 13 '17 at 12:25. Sublime Text includes a command line tool, subl, to work with files on the command line. This can be used to open files and projects in Sublime Text, as well working as.
Here’s how you get started with it.
Install Glue in Your Sublime Text Editor
Glue works in Sublime Text versions 2 and 3 and these install instructions apply for either version.
Install with Package Control
Terminus is heavily inspired by TerminalView another Sublime Text package that adds a terminal to a view. What I love about Terminus is you can add a toggleable panel or a view.
If you are using Will Bond’s Package Control, the install is simple. Open the Command Palette in your Sublime Text editor with the menus Tools > Command Palette
and then type install
in the text entry field. Select the option Package Control - Install Package
. Next, type ‘glue’ in the text input box and select the ‘Glue’ plugin option that is displayed in the Command Palette. The install automatically takes place. You will see a confirmation in the status bar at the bottom of the editor window.
Install with Git
Glue a Terminal for Sublime Text Apr 7th, 2014 Glue is a plugin that provides an interface to your shell from the Sublime Text editor. It features command entry within the Sublime Text editor window, standard output display in an editor view, and it works with most system utilities. Package Control Of all the plugins on this list, Package Control is the most essential.
Open your Packages
directory with the Sublime Text menu items Preferences > Browse Packages
. Then git clone the Glue repository as a new directory named ‘Glue’ in your Packages directory with the following command:
Install Manually
If you like to do things the good ole’ fashion way, download the source repository from GitHub (tar.gz | zip). Decompress the archive and rename it “Glue”.
Then, open your Sublime Text Packages directory using the Preferences > Browse Packages
menu items and move the entire Glue
directory into your Packages directory.
Confirm Your Install
Glue should automatically load in your editor after you install with any of the above approaches. You can confirm that it is installed by opening a project, right clicking in the sidebar and selecting the menu item Open Glue Terminal
.
Confirm Your PATH
The next step is to confirm that your PATH is properly set in Glue. Glue assigns a default user PATH from your environment PATH variable. In general the PATH is correct, but on some installs it may require a bit of assistance.
First, check the PATH that Glue is using by entering the following command on the Glue command line:
This will display a colon-delimited PATH string for Unix/Linux users and a semicolon delimited PATH string for Windows users. If the PATH doesn’t match your existing system PATH, you can set a new Glue PATH string. This does not modify your existing system PATH.
To do this, open the Glue user settings JSON file by navigating to Preferences > Package Settings > Glue > Glue Settings - User
. If you have not already entered settings in this file, it will appear as an empty buffer in Sublime Text. Create a JSON file with the following syntax:
Unix (including Mac OSX) and Linux users should enter a colon delimited string. Windows users should include semicolons as delimiters.
Here is an example for Unix/Linux users:
and for Windows users:
Windows users should escape their backward slashes as shown above.
Use Glue
Glue works with many of your favorite system utilities and allows you to extend what you can do inside the Sublime Text editor window. Here are a few examples:
Glue + grep
Glue + git
Glue + cURL
Glue + Your Own Scripts
Glue Commands
Glue includes its own set of built in commands that let you navigate around your directory structure, manipulate the editor (e.g. create new buffers, open files by wildcard), and perform other useful tasks:
Command | Description |
---|---|
cd | change directory |
exit | exit the Glue terminal |
glue browse | open URL or local project file in default browser |
glue clear | clear text in the Glue view |
glue finder | reveal current directory (default) or optional path in finder |
glue help | view help documentation in Glue view |
glue localhost | open default web browser to local server |
glue new | open a new Sublime Text buffer |
glue open | open one or more project files by filepath |
glue path | display the system PATH setting that is used by Glue |
glue user | display alphabetized list of your Glue user extensions |
glue wco | open one or more files by wildcard pattern |
Extend Glue
You can extend the built-in Glue commands with aliases that support system utilities, your own compiled executables, shell scripts, and source from any scripting language that is supported on your machine.
These Glue aliases can be called from the command line with the syntax:
They are incredibly simple to develop and require absolutely no programming knowledge (but can be hooked into anything that you develop with the capability to process data from the standard input stream).
Here are the steps to create your own extensions:
Create the Glue-Commands Directory
Create a Glue-Commands
directory inside your Sublime Text Packages
directory. You can open your Sublime Text Packages directory with the menu item Preferences > Browse Packages
.
Create a glue.json
File
Create a glue.json
file inside the Glue-Commands directory.
Define Your Glue Extensions
Commands are defined in the glue.json
file with a simple mapping of JSON key:value pairs using the following syntax
You have the option to include replacement tags in your system command string that allow you to pass command line arguments, the text in your clipboard, or the current working directory path to the aliased command:
Glue Extension Replacement Tags
Tag | Description |
---|---|
{{args}} | additional arguments that you include on the command line |
{{clipboard}} | the contents of the clipboard |
{{pwd}} | the working directory path |
JavaScript Minifier Extension Example
Here is an example that will take you through each of these steps to create a command that will minify and obfuscate a JavaScript file, and then save it in the same directory with the new path <filename>-min.js
:
If you are following along, you can download YUICompressor from the GitHub repository. You will need to have Java version 1.4+ installed to use it. Unpack the repository and move the yuicompressor-2.4.8.jar file to a directory for safe keeping (you will run it from this directory).
Next, create a shell script named minijs.sh. Include the following script and modify the YUI_PATH variable with the actual path to your YUICompressor jar file:
JavaScript Minifier Shell Script
Next, create a Glue extension that will serve as an alias for the call to this shell script when you use the glue minijs
command. We’ll include the {{args}} template tag so that we can pass filepath arguments to our script. Insert the following in your glue.json
file that you generated above:
To use your new Sublime Text feature, launch Glue in your editor and minify JS files in the working directory with a command like this:
The minified file is saved as awesome-min.js
in the same directory.
You can use the same technique with any compiled application or interpreted script that accepts the standard input stream and returns the data to be displayed for the user in the standard output stream. Glue provides the interface with your shell to take care of the rest.
Learn More
The Glue documentation is available here.
Issue Reporting
If you come across a bug in the plugin, please report it on the GitHub repository.
As I’m working in the OSX Terminal more and more these days, I'm always on the lookout for time saving shortcuts.
Sublime Hide Menu
A really useful tip that I picked up recently from Zander Martineau is how to open up Sublime Text straight from the Terminal. This is done by hooking into a CLI utility that Sublime provides called subl.
The following instructions are based largely on the original gist on Github by Artero, so credit for this solution should be directed to them and not myself.
It’s a slightly different installation depending on whether you’re using Sublime Text 2 or 3, so I’ll split the two out below in the installaton; simply refer to the instructions that are relevant to you.
Installation
Assuming you installed Sublime in the Applications folder, the following command should open up the editor when you type it into the Terminal:
For Sublime Text 2:
open /Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl
For Sublime Text 3:
open /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl
If that worked, you're good to go.
You now need to create a symlink called sublime
which links the subl CLI to a folder where your system usually looks to execute these binaries. To do this, type in:
For Sublime Text 2:
Free mac os x snow leopard download full version. ln -s /Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime
For Sublime Text 3:
ln -s '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' /usr/local/bin/sublime
Check your profile
The final thing you need to do, is to check that your system profile is looking in the right place to see the symlink you have just created.
Enter the following command into your Terminal:
open ~/.bash_profile
Note that in some cases the profile may be called ~/.profile
.
This should open up your profile in a text editor. What you’re looking for is a line towards the top of the file that starts with export PATH=
. Your PATH
contains all the directories that will be checked for executable binaries when you type a command into your Terminal. Since we created a symlink in the /usr/local/bin
folder, we want to make sure that that folder is being checked too.
Hopefully, you’ll be able to see something similar to this:
export PATH=/usr/local/bin:(..)
If not, simply add this folder to your PATH
and save the file.
Note: The (..)
in this example represents other folders that would be listed on the same line and separated by a colon.
If you don't already have a PATH
set in your bash_profile you can type the following on a new line:
export PATH=/usr/local/bin:$PATH
Flash for macbook pro download. Finally, if you did have to add /usr/local/bin
to your PATH
, run the following command before continuing:
source ~/.bash_profile
This will reload your .bash_profile with the newly added directory in your PATH
.
Test it works!
Terminal In Sublime Text 3
In your Terminal, the following commands should now work:
Does Sublime Have A Terminal
sublime .
– opens the current directory in Sublimesublime filename
– opens a file wherefilename
is the file to be openedsublime foldername
– opens a folder wherefoldername
is the folder to be opened
And there you have it – you can now open any file or folder in Sublime straight from the Terminal.
Terminal In Sublime
Thanks and credit for this great solution again goes to Artero. If you have any problems getting it working, let me know and I’ll do my best to help you out.
Article posted on the 17th February 2014