1

I did not change default prefix i.e. C-b. I added the following key binding in my tmux.conf

bind -n C-M-w send-keys M-w\; \
    run-shell "tmux save-buffer - | xclip -i -selection clipboard"

Basically I wanted that during the copy mode C-b [ I should be able to copy save-buffer to the clipboard as well. It works well but only for the first time. And after it is been executed once, it somehow magically unbinds the prefix and other key-bindings as well. I'm not sure why it does that.

I've fairly simple tmux config as below:

# 0 is too far from ` ;)
set -g base-index 1

# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on

#set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000

setw -g mode-keys emacs
setw -g mode-mouse on
setw -g monitor-activity on

bind-key v split-window -h
bind-key s split-window -v

bind-key J resize-pane -D 5
bind-key K resize-pane -U 5
bind-key H resize-pane -L 5
bind-key L resize-pane -R 5

bind-key M-j resize-pane -D
bind-key M-k resize-pane -U
bind-key M-h resize-pane -L
bind-key M-l resize-pane -R

# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D 
bind -n M-k select-pane -U
bind -n M-l select-pane -R

# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Shift arrow to switch windows
bind -n S-Left  previous-window
bind -n S-Right next-window

bind -n C-M-w send-keys M-w\; \
     run-shell "tmux save-buffer -  | xclip -i -selection clipboard"\; \
     set -g prefix 'C-b'

# No delay for escape key press
set -sg escape-time 0

# Reload tmux config
bind r source-file ~/.tmux.conf

1 Answer 1

4

Just replace

bind -n C-M-w send-keys M-w\; \
     run-shell "tmux save-buffer -  | xclip -i -selection clipboard"\; \
     set -g prefix 'C-b

with

bind -n C-M-w send-keys M-w\; \
     run-shell "tmux save-buffer -  | xclip -i -selection clipboard >> /dev/null "\; \
     set -g prefix 'C-b

After playing around this issue Thanks to Severyn Kozak who suggest using /dev/null

I think the problem in some commands that don't return output or exit status like xclip so redirecting the output to /dev/null will be enough for copying from paste buffer to clipboard.

I couldn't get why you use Send keys and set prefix commands ,but for tmux 1.8+ you should use copy-pipe command instead to copy selected text to paste buffer and clipboard

Copy and paste method using emacs-mode from this answer:

bind-key -n -t emacs-copy M-w copy-pipe "xclip -i -sel p -f | xclip -i -sel c "
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"

Using vi mode "prefix C-[ to enter copy mode >> v to highlight text >> y to copy text to both paste buffer and clipboard >> prefix p to paste ":

set -g mode-keys vi
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-pipe "xclip -i -sel clip"
bind p paste-buffer
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .