Skip to content

misfo/Shell-Turtlestein

Repository files navigation

Shell Turtlestein

A quick and simple way to run arbitrary shell commands in Sublime Text.

Mr. Turtlestein acts as a more flexible alternative to Sublime's build systems. Commands run in your project's directory:

input a shell command

And display their output just like Sublime's build systems:

command output

Input and output

Unix's familiar | and > operators can be used to pipe/redirect a command's input and output:

  • To pipe the active view's selections to a command, add a leading pipe character (e.g. | sort). If there are no non-empty selections the entire file will be piped to the command.
  • To pipe a command's output back into the view, add a trailing pipe character (e.g. | sort |).
  • To redirect the command's output to a new file, add a trailing greater than symbol to the command (e.g ls > or | sort >).

Using snippets

Snippets are available for frequently used commands. All snippets with the scope name source.shell (source.dosbatch for Windows users) can be used in the prompt shown above. I have some examples you can take a look at to get an idea for this.

Default keybindings

  • Ctrl + Shift + C (Cmd + Shift + C): prompt for a shell command
  • Ctrl + Alt + Shift + C (Cmd + Alt + Shift + C): launch a terminal in the window's directory
  • Ctrl + Shift + X (Cmd + Shift + X): re-run the previous command

Optional Configuration

In your own Packages/User/Shell Turtlestein.sublime-settings file you can override the following settings:

  • surround_cmd: A two-element array that specifies text to append before and after the command (e.g. ["source ~/.profile && ", ""]).
  • exec_args: The arguments that will be passed to ExecCommand. The same options that are available to build systems are available here, but file_regex, line_regex, encoding, env, and path are the only options that make sense to use with this plugin. Arguments specified in the cmd_settings (see below) will override these defaults.
  • cmd_settings: An array of configurations to use for commands that are executed. The first configuration to match the command being run will be used. The keys that each configuration should have are:
    • cmd_regex: A regex that must match the command for this configuration for this configuration to be used.
    • exec_args and surround_cmd override the settings described above for any matching command.
  • prefer_active_view_dir: If set to true, prefer using the directory of active file over using a folder open in the current project.

PAQ

Q: Who the balls is Shell Turtlestein?

A: He was a pet turtle that died in some episode of Modern Family. That's about as high-brow as my references get. R.I.P. Shell :(

Q: What does "PAQ" stand for?

A: Possibly asked questions

Thanks!

Thanks to all the contributors. I'd give you all high fives if my arm would fit through the internet.