Copy to the system clipboard in tmux
.
Supports:
- Linux
- macOS
- Cygwin
- Windows Subsystem for Linux (WSL)
The easiest way to install tmux-yank
is via the Tmux Plugin
Manager.
-
Add plugin to the list of TPM plugins in
.tmux.conf
:set -g @plugin 'tmux-plugins/tmux-yank'
-
Use prefix–I install
tmux-yank
. You should now be able totmux-yank
immediately. -
When you want to update
tmux-yank
use prefix–U.
-
Clone the repository
$ 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 the
tmux
environment# type this inside tmux $ tmux source-file ~/.tmux.conf
You should now be able to use tmux-yank
immediately.
In order for tmux-yank
to work, there must be a program that store data in
the system clipboard.
Note: Some versions of macOS (aka OS X) have been reported to work
without reattach-to-user-namespace
. It doesn't hurt to have it installed.
- OS X 10.8: Mountain Lion – required
- OS X 10.9: Mavericks – required
- OS X 10.10: Yosemite – not required
- OS X 10.11: El Capitan – not required
- macOS 10.12: Sierra – required
The easiest way to use reattach-to-user-namespace
with tmux
is use to
use the tmux-sensible
plugin.
To use it manually, use:
# ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l $SHELL"
If you have tmux
1.5 or newer and are using
iTerm2 version 3 or newer then the y
in copy-mode
and mouse selection will work without tmux-yank
.
To enable this:
-
Go into iTerm2's preferences.
-
Go to the "General" tab.
-
Check "Applications in terminal may access clipboard"
-
In
tmux
, ensureset-clipboard
is turned on:$ tmux show-options -g -s set-clipboard set-clipboard on
HomeBrew (recommended)
$ brew install reattach-to-user-namespace
$ sudo port install tmux-pasteboard
xsel
(recommended) orxclip
.
If you have tmux
1.5 or newer and are using xterm
, the y in
copy-mode
and mouse selection will work without tmux-yank
. See the
tmux(1)
man page entry for the set-clipboard
option.
$ sudo apt-get install xsel # or xclip
$ sudo yum install xsel # or xclip
- (optional)
putclip
which is part of thecygutils-extra
package.
clip.exe
is shipped with Windows Subsystem for Linux.
-
Normal Mode
-
prefix–y — copies text from the command line to the clipboard.
Works with all popular shells/repls. Tested with:
-
prefix–Y — copy the current pane's current working directory to the clipboard.
-
-
Copy Mode
- y — copy selection to system clipboard.
- Y (shift-y) — "put" selection. Equivalent to copying a selection, and pasting it to the command line.
tmux-yank does its best to detect a reasonable choice for a clipboard program on your OS.
If tmux-yank can't detect a known clipboard program then it uses the
@custom_copy_command
tmux option as your clipboard program if set.
If you need to always override tmux-yank's choice for a clipboard program,
then you can set @override_copy_command
to force tmux-yank to use whatever
you want.
Note that both programs must accept STDIN
for the text to be copied.
An example of setting @override_copy_command
:
# ~/.tmux.conf
set -g @custom_copy_command 'my-clipboard-copy --some-arg'
# or
set -g @override_copy_command 'my-clipboard-copy --some-arg'
Linux has several cut-and-paste clipboards: primary
, secondary
, and
clipboard
(default in tmux-yank is clipboard
).
You can change this by setting @yank_selection
:
# ~/.tmux.conf
set -g @yank_selection 'primary' # or 'secondary' or 'clipboard'
When making a selection using tmux
with 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.
If using tmux
2.3 or older and using vi keys then you'll have add the
following configuration setting:
# ~/.tmux.conf
set -g @shell_mode 'vi'
This isn't needed with tmux
2.4 or newer.
Note: The screen-cast uses Control–y for
"put selection". Use Y in v2.0.0
and later.
- tmux-copycat - a plugin for regular expression 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 environment.