Added tmux.conf
This commit is contained in:
parent
8cead0307a
commit
69ab5dfc75
75
tmux/.tmux.conf
Normal file
75
tmux/.tmux.conf
Normal file
@ -0,0 +1,75 @@
|
||||
# ==========================
|
||||
# === General settings ===
|
||||
# ==========================
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
# Change prefix key to C-a, easier to type, same to "screen"
|
||||
unbind C-b
|
||||
set -g prefix C-a
|
||||
|
||||
# Set parent terminal title to reflect current window in tmux session
|
||||
set -g set-titles on
|
||||
set -g set-titles-string "#I:#W"
|
||||
|
||||
# Start index of window/pane with 1, because we're humans, not computers
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# Enable mouse support
|
||||
set -g mouse on
|
||||
|
||||
# ================================================
|
||||
# === Copy mode, scroll and clipboard ===
|
||||
# ================================================
|
||||
set -g @copy_use_osc52_fallback on
|
||||
|
||||
# Prefer vi style key table
|
||||
setw -g mode-keys vi
|
||||
|
||||
bind p paste-buffer
|
||||
bind C-p choose-buffer
|
||||
|
||||
# trigger copy mode by
|
||||
bind -n M-Up copy-mode
|
||||
|
||||
# Scroll up/down by 1 line, half screen, whole screen
|
||||
bind -T copy-mode-vi M-Up send-keys -X scroll-up
|
||||
bind -T copy-mode-vi M-Down send-keys -X scroll-down
|
||||
bind -T copy-mode-vi M-PageUp send-keys -X halfpage-up
|
||||
bind -T copy-mode-vi M-PageDown send-keys -X halfpage-down
|
||||
bind -T copy-mode-vi PageDown send-keys -X page-down
|
||||
bind -T copy-mode-vi PageUp send-keys -X page-up
|
||||
|
||||
# When scrolling with mouse wheel, reduce number of scrolled rows per tick to "2" (default is 5)
|
||||
bind -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 2 scroll-up
|
||||
bind -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 2 scroll-down
|
||||
|
||||
# wrap default shell in reattach-to-user-namespace if available
|
||||
# there is some hack with `exec & reattach`, credits to "https://github.com/gpakosz/.tmux"
|
||||
# don't really understand how it works, but at least window are not renamed to "reattach-to-user-namespace"
|
||||
if -b "command -v reattach-to-user-namespace > /dev/null 2>&1" \
|
||||
"run 'tmux set -g default-command \"exec $(tmux show -gv default-shell) 2>/dev/null & reattach-to-user-namespace -l $(tmux show -gv default-shell)\"'"
|
||||
|
||||
yank="~/.tmux/yank.sh"
|
||||
|
||||
# Copy selected text
|
||||
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "$yank"
|
||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "$yank"
|
||||
bind -T copy-mode-vi Y send-keys -X copy-line \;\
|
||||
run "tmux save-buffer - | $yank"
|
||||
bind-key -T copy-mode-vi D send-keys -X copy-end-of-line \;\
|
||||
run "tmux save-buffer - | $yank"
|
||||
bind -T copy-mode-vi C-j send-keys -X copy-pipe-and-cancel "$yank"
|
||||
bind-key -T copy-mode-vi A send-keys -X append-selection-and-cancel \;\
|
||||
run "tmux save-buffer - | $yank"
|
||||
|
||||
# Copy selection on drag end event, but do not cancel copy mode and do not clear selection
|
||||
# clear select on subsequence mouse click
|
||||
bind -T copy-mode-vi MouseDragEnd1Pane \
|
||||
send-keys -X copy-pipe "$yank"
|
||||
bind -T copy-mode-vi MouseDown1Pane select-pane \;\
|
||||
send-keys -X clear-selection
|
||||
|
||||
# iTerm2 works with clipboard out of the box, set-clipboard already set to "external"
|
||||
# tmux show-options -g -s set-clipboard
|
||||
# set-clipboard on|external
|
Loading…
Reference in New Issue
Block a user