Yanks to system clipboard.
Go to file
Bruno Sutic 7cabab6a50 Merge pull request #44 from netei/master
Add support for custom copy command
2015-09-28 17:42:41 +02:00
scripts Add support for custom copy command 2015-09-22 09:20:57 +02:00
video Update video/README.md 2014-07-31 11:47:57 +02:00
.gitignore Add gitignore 2014-08-04 23:03:14 +02:00
CHANGELOG.md Add support for custom copy command 2015-09-22 09:20:57 +02:00
LICENSE.md First commit 2014-06-24 11:39:47 +02:00
README.md Update plugin installation instructions 2015-08-10 20:43:17 +02:00
vagrant_provisioning.sh Add Vagrant config for testing on linux 2014-08-04 23:04:02 +02:00
Vagrantfile Add Vagrant config for testing on linux 2014-08-04 23:04:02 +02:00
yank.tmux Add support for custom copy command 2015-09-22 09:20:57 +02:00

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 (deprecated, not useful)

OS X requirements

  • reattach-to-user-namespace
    Install with brew $ brew install reattach-to-user-namespace or macports $ sudo port install tmux-pasteboard.

    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.

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

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.

Shell vi mode compatibility

# in .tmux.conf
set -g @shell_mode 'vi'

Linux clipboard

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'

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

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

set -g @plugin '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