/tslime.vim

Send command from vim to a running tmux session

Primary LanguageVim Script

tslime.vim

This is a simple vim script to send portion of text from a vim buffer to a running tmux session.

It is based on slime.vim http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/, but use tmux instead of screen. However, compared to tmux, screen doesn't have the notion of panes. So, the script was adapted to take panes into account.

Note: If you use version of tmux ealier than 1.3, you should use the stable branch. The version available in that branch isn't aware of panes so it will paste to pane 0 of the window.

Setting Keybindings

In this fork of tslime.vim, keybindings are not set automatically for you. Instead, you can map whatever you'd like to one of the plugin-specific bindings in your .vimrc file.

To get the old defaults, put the following in your .vimrc:

vmap <C-c><C-c> <Plug>SendSelectionToTmux
nmap <C-c><C-c> <Plug>NormalModeSendToTmux
nmap <C-c>r <Plug>SetTmuxVars

To send a selection in visual mode to vim, set the following in your .vimrc:

vmap <your_key_combo> <Plug>SendSelectionToTmux

To grab the current method that a cursor is in normal mode, set the following:

nmap <your_key_combo> <Plug>NormalModeSendToTmux

Use the following to reset the session, window, and pane info:

nmap <your_key_combo> <Plug>SetTmuxVars

Have a command you run frequently, use this:

nmap <your_key_combo> :Tmux <your_command><CR>

More info about the <Plug> and other mapping syntax can be found here.