Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tmux-plugins/tmux-yank
Tmux plugin for copying to system clipboard. Works on OSX, Linux and Cygwin.
https://github.com/tmux-plugins/tmux-yank
clipboard cygwin linux macos shell tmux tpm wsl
Last synced: 26 days ago
JSON representation
Tmux plugin for copying to system clipboard. Works on OSX, Linux and Cygwin.
- Host: GitHub
- URL: https://github.com/tmux-plugins/tmux-yank
- Owner: tmux-plugins
- License: mit
- Created: 2014-06-24T09:37:12.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-03-24T11:30:18.000Z (8 months ago)
- Last Synced: 2024-09-27T04:02:54.114Z (about 1 month ago)
- Topics: clipboard, cygwin, linux, macos, shell, tmux, tpm, wsl
- Language: Shell
- Homepage: https://tmux-plugins.github.io/tmux-yank/
- Size: 158 KB
- Stars: 2,669
- Watchers: 25
- Forks: 121
- Open Issues: 47
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-starred - tmux-yank - Tmux plugin for copying to system clipboard. Works on OSX, Linux and Cygwin. (Shell)
- awesome-tmux - tmux-yank
README
[![Build
Status](https://travis-ci.org/tmux-plugins/tmux-yank.svg?branch=master)](https://travis-ci.org/tmux-plugins/tmux-yank)
[![GitHub
release](https://img.shields.io/github/release/tmux-plugins/tmux-yank.svg)](https://github.com/tmux-plugins/tmux-yank/releases)
[![GitHub
issues](https://img.shields.io/github/issues/tmux-plugins/tmux-yank.svg)](https://github.com/tmux-plugins/tmux-yank/issues)tmux-yank
=========Copy to the system clipboard in [`tmux`](https://tmux.github.io/).
Supports:
- Linux
- macOS
- Cygwin
- Windows Subsystem for Linux (WSL)Installing
----------### Via TPM (recommended)
The easiest way to install `tmux-yank` is via the [Tmux Plugin
Manager](https://github.com/tmux-plugins/tpm).1. Add plugin to the list of TPM plugins in `.tmux.conf`:
``` tmux
set -g @plugin 'tmux-plugins/tmux-yank'
```2. Use prefix–I install `tmux-yank`. You should now
be able to `tmux-yank` immediately.
3. When you want to update `tmux-yank` use prefix–U.### Manual Installation
1. Clone the repository
``` sh
$ git clone https://github.com/tmux-plugins/tmux-yank ~/clone/path
```2. Add this line to the bottom of `.tmux.conf`
``` tmux
run-shell ~/clone/path/yank.tmux
```3. Reload the `tmux` environment
``` sh
# type this inside tmux
$ tmux source-file ~/.tmux.conf
```You should now be able to use `tmux-yank` immediately.
Requirements
------------In order for `tmux-yank` to work, there must be a program that store data in
the system clipboard.### macOS
- [`reattach-to-user-namespace`](https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard)
**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*
- macOS 10.14: Mojave - *required*
- macOS 10.15: Catalina - *not required*The easiest way to use `reattach-to-user-namespace` with `tmux` is use to
use the [`tmux-sensible`](https://github.com/tmux-plugins/tmux-sensible)
plugin.To use it manually, use:
``` tmux
# ~/.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](https://www.iterm2.com/) version 3 or newer then the y
in `copy-mode` and mouse selection will work without `tmux-yank`.To enable this:
1. Go into iTerm2's preferences.
2. Go to the "General" tab.
3. Check "Applications in terminal may access clipboard"
4. In `tmux`, ensure `set-clipboard` is turned on:``` sh
$ tmux show-options -g -s set-clipboard
set-clipboard on
```#### [HomeBrew](https://brew.sh/) (recommended)
``` sh
$ brew install reattach-to-user-namespace
```#### MacPorts
``` sh
$ sudo port install tmux-pasteboard
```### Linux
- `xsel` (recommended) or `xclip` (for X).
- `wl-copy` from [wl-clipboard](https://github.com/bugaevc/wl-clipboard) (for Wayland)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.#### Debian & Ubuntu
``` sh
$ sudo apt-get install xsel # or xclip
```#### RedHat & CentOS
``` sh
$ sudo yum install xsel # or xclip
```### Cygwin
- (*optional*) `putclip` which is part of the `cygutils-extra` package.
### Windows Subsystem for Linux (WSL)
- `clip.exe` is shipped with Windows Subsystem for Linux.
Configuration
-------------### Key bindings
- Normal Mode
- prefix–y — copies text from the command line
to the 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](http://mosh.mit.edu/)
- vim/neovim command line (requires
[vim-husk](https://github.com/bruno-/vim-husk) or
[vim-rsi](https://github.com/tpope/vim-rsi) plugin)- 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.### Default and Preferred Clipboard Programs
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
# ~/.tmux.confset -g @custom_copy_command 'my-clipboard-copy --some-arg'
# or
set -g @override_copy_command 'my-clipboard-copy --some-arg'
```### Linux Clipboards
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
# ~/.tmux.confset -g @yank_selection 'primary' # or 'secondary' or 'clipboard'
```With mouse support turned on (see below) the default clipboard for mouse
selections is `primary`.You can change this by setting `@yank_selection_mouse`:
``` tmux
# ~/.tmux.confset -g @yank_selection_mouse 'clipboard' # or 'primary' or 'secondary'
```### Controlling Yank Behavior
By default, `tmux-yank` will exit copy mode after yanking text. If you wish to
remain in copy mode, you can set `@yank_action`:``` tmux
# ~/.tmux.confset -g @yank_action 'copy-pipe' # or 'copy-pipe-and-cancel' for the default
```### Mouse Support
`tmux-yank` has mouse support enabled by default. It will only work if `tmux`'s
built-in mouse support is also enabled (with `mouse on` since `tmux` 2.1, or
`mode-mouse on` in older versions).To yank with the mouse, click and drag with the primary button to begin
selection, and release to yank.If you would prefer to disable this behavior, or provide your own bindings for
the `MouseDragEnd1Pane` event, you can do so with:``` tmux
# ~/.tmux.confset -g @yank_with_mouse off # or 'on'
```If you want to remain in copy mode after making a mouse selection, set
`@yank_action` as described above.### vi mode support
If using `tmux` 2.3 or older *and* using vi keys then you'll have add the
following configuration setting:``` tmux
# ~/.tmux.confset -g @shell_mode 'vi'
```This isn't needed with `tmux` 2.4 or newer.
### Screen-cast
[![screencast
screenshot](/video/screencast_img.png)](https://vimeo.com/102039099)**Note**: The screen-cast uses Control–y for
"put selection". Use Y in `v2.0.0` and later.### Other tmux plugins
- [tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) - a plugin
for regular expression searches in tmux and fast match selection
- [tmux-open](https://github.com/tmux-plugins/tmux-open) - a plugin for
quickly opening highlighted file or a URL
- [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) -
automatic restoring and continuous saving of tmux environment.### License
[MIT](LICENSE.md)