Skip to content

jebaum/vim-tmuxify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vim-tmuxify

This is a shiny Vim plugin for handling tmux panes from within Vim!

Features:

  • create/kill associated panes
  • associate tmuxify to already existing panes
  • send visually highlighted lines to the associated pane
  • send to pane by prompting for input
  • send to pane by setting a run command for the current filetype
  • once set, run commands are remembered, but can easily be reset
  • all the plugin configuration happens in one dictionary that holds filetypes as keys and run commands as values

NOTE: This plugin needs tmux 1.6 with a certain patch level. You're safe with versions 1.7+.

Feedback, please!

If you use any of my plugins, star it on github. This is a great way of getting feedback! Same for issues or feature requests.

Thank you for flying mhi airlines. Get the Vim on!

Installation

If you have no preferred installation method, I suggest using tpope's pathogen:

  1. git clone https://github.com/tpope/vim-pathogen ~/.vim/bundle/vim-pathogen
  2. mkdir -p ~/.vim/autoload && cd ~/.vim/autoload
  3. ln -s ../bundle/vim-pathogen/autoload/pathogen.vim

Afterwards, installing tmuxify is as easy as pie:

  1. git clone https://github.com/mhinz/vim-tmuxify ~/.vim/bundle/vim-tmuxify
  2. start Vim
  3. :Helptags
  4. :h tmuxify

Options

Put these variables into your vimrc for great enjoyment. The shown examples are also the default values.

let g:tmuxify_custom_command = 'tmux split-window -d'

Use this option if you want to overwrite that default command for creating a new pane.

(Examples are given in :h tmuxify-options)

let g:tmuxify_map_prefix = '<leader>m'

What to start mappings with. Set it to '' to disable mappings.

let g:tmuxify_run = {}

Set run commands for specific filetypes. '%' will be replaced by the full path to the current buffer.

Example:

let g:tmuxify_run = {
    \ 'sh': 'bash %',
    \ 'go': 'go build %',
    \}

Mappings

<leader>mn

Executes TxCreate. Creates a new pane and associates with it.

<leader>mq

Executes TxKill. Closes the associated pane.

<leader>ms

Executes TxSend. Prompts for input and sends it to the associated pane. This mapping also works on visual selections.

<leader>mr

Executes TxSendKey. Prompts for input and sends it to the associated pane as keys.

<leader>mk

Executes TxRun. Prompts for input if there is no entry in g:tmuxify_run for the current filetype. '%' will be replaced by the full path to the current buffer.

<leader>mt

Executes TxSetRunCmd. Change the run command for the current filetype.

<leader>mp

Executes TxSetPane. Associate an already existing pane with tmuxify. Note: You can use tab completion here.

<leader>mc

Executes TxClear. Sends ctrl+l to the associated pane.

<leader>mb

Executes TxSigInt. Sends ctrl+c to the associated pane.

Documentation

:h tmuxify

Author

Marco Hinz <mh.codebro@gmail.com>

James Baumgarten (current maintainer)

License

Copyright © Marco Hinz. Distributed under the same terms as Vim itself. See :help license.

About

Vim plugin for handling tmux panes.

Resources

Stars

Watchers

Forks

Packages

No packages published