tweed / tmux-yank

Tmux plugin for copying to system clipboard. Works on OSX and Linux.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tmux Yank

Enables copying to system clipboard in Tmux. Works on Linux and OS X.

Screencast

screencast screenshot

Note: screencast shows using the "put selection" feature with Ctrl-y key binding in copy mode. In v2.0.0 this key binding was changed to Y (shift-y).

Key bindings

  • prefix + y - copies text from the command line to clipboard.
    Works with all popular shells/repls. Tested with:
    • shells: bash, zsh (with bindkey -e), tcsh
    • repls: irb, pry, node, psql, python, php -a, coffee
    • remote shells: ssh, mosh
    • vim/neovim command line (requires vim-husk or vim-rsi plugin)

copy mode bindings:

  • y - copy selection to system clipboard
  • Y (shift-y) - "put" selection - equivalent to copying a selection, and pasting it to the command line
  • Alt-y - performs both of the above: copy to system clipboard and put to command line

OS X requirements

  • reattach-to-user-namespace
    Note: Beginning with OSX Yosemite (10.10), pbcopy is reported to work correctly with tmux, so we believe reattach-to-user-namespace is not needed anymore. Please install it in case the plugin doesn't work for you.

    For previous OSX versions, you need to install it: $ brew install reattach-to-user-namespace.
    Alternatively, if you are using MacPorts, install via:
    $ sudo port install tmux-pasteboard

Linux requirements

  • xclip OR xsel command
    You most likely already have one of them, but if not:
    • Debian / Ubuntu: $ sudo apt-get install xclip or $ sudo apt-get install xsel
    • Red hat / CentOS: $ yum install xclip or $ yum install xsel

Copy command

OS X

Copying to clipboard is done using pbcopy.

Linux

Copying to clipboard is done using xclip -selection clipboard or xsel --clipboard command by default.

If copying is different on your system, and you need the command to be i.e. xclip -selection primary or xsel -i --primary, here's how to customize:

# in .tmux.conf
set -g @yank_selection 'primary'

Warning: Use full names as option ('primary', 'secondary', 'clipboard')

Notes

Mouse Support

When making a selection using tmux mode-mouse on or mode-mouse copy-mode, you cannot rely on the default 'release mouse after selection to copy' behavior. Instead, press y before releasing mouse.

Installation with Tmux Plugin Manager (recommended)

Add plugin to the list of TPM plugins in .tmux.conf:

set -g @tpm_plugins '          \
  tmux-plugins/tpm             \
  tmux-plugins/tmux-yank       \
'

Hit prefix + I to fetch the plugin and source it. You should now be able to use the plugin.

Manual Installation

Clone the repo:

$ git clone https://github.com/tmux-plugins/tmux-yank ~/clone/path

Add this line to the bottom of .tmux.conf:

run-shell ~/clone/path/yank.tmux

Reload TMUX environment:

# type this in terminal
$ tmux source-file ~/.tmux.conf

You should now be able to use the plugin.

Other Tmux goodies

  • tmux-copycat - a plugin for regex searches in tmux and fast match selection
  • tmux-open - a plugin for quickly opening highlighted file or a url
  • tmux-continuum - automatic restoring and continuous saving of tmux env

You might want to follow @brunosutic on twitter if you want to hear about new tmux plugins or feature updates.

License

MIT

About

Tmux plugin for copying to system clipboard. Works on OSX and Linux.

License:MIT License


Languages

Language:Shell 100.0%