README.md

Slimux

This is a SLIME inspired tmux integration plugin for Vim. It makes it easy to interact
with different tmux panes directly from Vim. It has two styles for interacting
with panes. REPL and Shell styles.

REPL commands are designed to work with various Read Eval Print Loops such as
python, irb (Ruby), node (Javascript), coffee (CoffeeScript) etc.
This is loosely modelled after SLIME for Emacs. Shell commands are designed
to work with normal shells such as bash. These are useful for running tests for
example.

Main difference between these is pane configuration visibility. Each buffer has
own configuration for REPL, but for Shell there is only one global
configuration. The configuration is prompted from user when the commands are
used for the first time. The configuration happens interactively. You will see
list of available tmux panes and you can choose one by hitting enter on top of
one.

Also REPL commands can have custom pre, post and escape hooks. These allows
interaction with some more complex REPLs such as the CoffeeScript REPL.

Adding support for new languages

Usually new there is no need to do anything. For example Ruby and Node.js REPLs
works just fine out of box, but for some languages you have to do some preprocessing
before the code can be sent. There are three hooks you can specify for
each language.

Custom escaping function

function SlimuxEscape_<filetype>(text)
return a:text
endfunction

Pre send hook

function SlimuxPre_<filetype>(target_pane)
endfunction

Post send hook

function SlimuxPost_<filetype>(target_pane)
endfunction

Just add these to ftplugin directory contained within this plugin (and sent a pull request on Github!).
You can use Python and CoffeeScript hooks as examples.

Other Vim Slime plugins

Before I created this plugin I tried several others, but non of them satisfied me. They where too
complicated or just didn't support the languages I needed. So if Slimux isn't your cup of tea,
maybe one of these is: