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

Send​Text

by wch ST2/ST3

A Sublime Text plugin to send text to a terminal or other program

Labels terminal

Details

  • 2016.08.08.17.04.22
  • github.​com
  • github.​com
  • 3 years ago
  • 2 hours ago
  • 7 years ago

Installs

  • Total 8K
  • Win 3K
  • OS X 3K
  • Linux 1K
May 20 May 19 May 18 May 17 May 16 May 15 May 14 May 13 May 12 May 11 May 10 May 9 May 8 May 7 May 6 May 5 May 4 May 3 May 2 May 1 Apr 30 Apr 29 Apr 28 Apr 27 Apr 26 Apr 25 Apr 24 Apr 23 Apr 22 Apr 21 Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13 Apr 12 Apr 11 Apr 10 Apr 9 Apr 8 Apr 7 Apr 6 Apr 5
Windows 1 2 0 2 5 3 0 2 0 1 3 5 4 3 1 1 1 2 3 2 2 1 1 1 2 2 1 0 3 1 0 6 4 1 1 5 2 0 2 0 0 2 0 3 1 2
OS X 0 1 0 1 2 1 3 1 0 0 2 2 0 2 1 1 1 1 1 0 5 4 1 2 0 2 2 2 1 0 0 3 1 1 3 1 0 0 1 3 0 1 1 0 2 3
Linux 0 0 0 0 0 1 1 1 2 0 0 1 1 2 1 2 1 1 4 0 0 2 0 1 1 2 3 2 1 0 0 1 2 0 1 0 1 1 1 2 1 3 4 1 2 2

Readme

Source
raw.​githubusercontent.​com

SendText for Sublime Text 2 and 3

This package sends text to a terminal (or other program). If text is selected, it will send the selection to the terminal when you press cmd-Enter (Mac) or ctrl-Enter (Linux/Windows); if no text is selected, it will send the current line to the terminal and move the cursor to the next line. This is very useful for coding in interpreted languages.

SendText presently works with:

  • Terminal.app on Mac OS X. SendText will send the text to the most recently active Terminal window.
  • iTerm on Mac OS X. SendText will send the text to the most recently iTerm window.
  • GNU screen on any platform (Linux and Mac OS X). Screen is a terminal multiplexer which you can start in any terminal emulator. SendText will send the text to the most recently active screen session.
  • tmux on any platform (Linux and Mac OS X). tmux is a terminal multiplexer (like GNU screen) which you can start in any terminal emulator. SendText will send the text to the most recently active tmux session.

Hopefully in the future it will also be possible to do the following:

  • Attach a Sublime Text view to a particular terminal window.

This plugin was originally based on Rtools by Karthik Ram: https://github.com/karthik/Rtools

Installation

The easy way is to first install the Package Control plugin. Once it's installed, press Ctrl-Shift-P (or Cmd-Shift-P), type install, and select “Package Control: Install Packages”. Then type “sendtext”, and choose to install the SendText plugin.

The other way is to clone this git repository into your Sublime Text 2/Packages or Sublime Text 3/Packages directory. This will be in different places depending on the OS (for ST3, replace the 2 with 3):

  • Windows: %APPDATA%\Sublime Text 2\Packages
  • OS X: ~/Library/Application Support/Sublime Text 2/Packages
  • Linux: ~/.config/sublime-text-2
git clone https://github.com/wch/SendText.git

Program configuration

You can configure SendText by going to:

Preferences -> Package Settings -> SendText -> Settings - Default

First, choose which terminal program you want to use, and uncomment the appropriate line. For example, this tells SendText to use Terminal.app:

"program": "Terminal.app",
    // "program": "iTerm",
    // "program": "tmux",
    // "program": "screen",

If you're using Terminal.app or iTerm, that's all you need to do. If you use tmux or screen, you may need to explicitly set the path to make it work. (This seems to be necessary for me on Mac OS X and with tmux installed in /usr/local/bin, but YMMV.) In the paths, set the value for tmux or screen to the full path to the executable. For example:

"paths":
    {
        "tmux": "/usr/local/bin/tmux"
        "screen": "/usr/local/bin/screen"
    }

Using SendText

Using SendText is simple. Start your terminal program (of the ones listed above), then, in Sublime Text, select some text and press cmd-Enter (or ctrl-Enter).

Configuring key bindings

To change the key bindings, go to:

Preferences -> Package Settings -> SendText -> Key Bindings - Default

The default value for Linux and Windows is:

[
{ "keys": ["ctrl+enter"], "command": "send_selection" }
]

And for Mac OS, it uses the Cmd key (super) instead of Ctrl:

[
{ "keys": ["super+enter"], "command": "send_selection" }
]

Change the value of "keys" to the key combination you want to use.