Created
November 4, 2017 00:31
-
-
Save a-eid/cd6f2c061b6fb0b70a2142fd04e77f27 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#rebind C-b => C-a | |
unbind C-b | |
set -g prefix C-a | |
bind C-a send-prefix | |
# 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 | |
TERM=screen-256color | |
set -g default-terminal screen-256color | |
set -g status-keys vi | |
set -g history-limit 10000 | |
setw -g mode-keys vi | |
setw -g monitor-activity on | |
bind-key v split-window -h | |
# bind-key " split-window -v | |
# Vim style pane selection | |
# bind h select-pane -L | |
# bind j select-pane -D | |
# bind k select-pane -U | |
# bind l select-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 | |
# No delay for escape key press | |
set -sg escape-time 0 | |
# Reload tmux config | |
bind r source-file ~/.tmux.conf | |
# THEME | |
set -g status-bg black | |
set -g status-fg white | |
set -g status-bg colour240 | |
set -g window-status-current-bg white | |
set -g window-status-current-fg black | |
set -g window-status-current-attr bold | |
set -g status-interval 60 | |
set -g status-left-length 30 | |
set -g status-left '#[fg=green](#S) #(whoami)' | |
set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]' | |
### move btw panes | |
bind -n C-h select-pane -L | |
bind -n C-j select-pane -D | |
bind -n C-k select-pane -U | |
bind -n C-l select-pane -R | |
is_view_vim_diff="echo '#{pane_current_command}' | grep -iqE '(view|vim)(diff)?'" | |
bind -n C-h run "$is_view_vim_diff && tmux send-keys C-h || tmux select-pane -L" | |
bind -n C-j run "$is_view_vim_diff && tmux send-keys C-j || tmux select-pane -D" | |
bind -n C-k run "$is_view_vim_diff && tmux send-keys C-k || tmux select-pane -U" | |
bind -n C-l run "$is_view_vim_diff && tmux send-keys C-l || tmux select-pane -R" | |
# tmux plugin manager | |
# List of plugins | |
set -g @plugin 'tmux-plugins/tpm' | |
set -g @plugin 'tmux-plugins/tmux-sensible' | |
set -g @plugin 'tmux-plugins/tmux-yank' | |
set -g @plugin 'tmux-plugins/tmux-open' | |
set -g @plugin 'tmux-plugins/tmux-copycat' | |
set -g @yank_selection 'primary' | |
set -g @shell_mode 'vi' | |
# Other examples: | |
# set -g @plugin 'github_username/plugin_name' | |
# set -g @plugin 'git@github.com/user/plugin' | |
# set -g @plugin 'git@bitbucket.com/user/plugin' | |
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | |
run '~/.tmux/plugins/tpm/tpm' | |
#fix opening new window/horizontal/vertical splits in current dir | |
bind c new-window -c "#{pane_current_path}" | |
bind '"' split-window -c "#{pane_current_path}" | |
bind % split-window -h -c "#{pane_current_path}" | |
bind '"' split-window -c "#{pane_current_path}" | |
bind "'" split-window -c "#{pane_current_path}" | |
bind v split-window -h -c "#{pane_current_path}" | |
# copy enhancement (vim like) | |
bind P paste-buffer | |
# bind-key -t vi-copy 'v' begin-selection | |
# bind-key -t vi-copy 'y' copy-selection | |
# bind-key -t vi-copy 'r' rectangle-toggle | |
# clipboard | |
# bind -t vi-copy y copy-pipe "xclip -sel clip -i" | |
# clear while running tmux | |
# bind -n C-o send-keys -R \; send-keys C-l \; clear-history | |
bind A send-keys -R \; send-keys C-l \; clear-history | |
bind a send-keys -R \; send-keys C-l \; clear-history | |
# reload conf | |
bind r source-file ~/.tmux.conf \; display "Reloaded tmux.conf" | |
# resizing panes | |
bind-key -r J resize-pane -D 10 | |
bind-key -r K resize-pane -U 10 | |
bind-key -r H resize-pane -L 10 | |
bind-key -r L resize-pane -R 10 | |
bind-key -r j resize-pane -D 5 | |
bind-key -r k resize-pane -U 5 | |
bind-key -r h resize-pane -L 5 | |
bind-key -r l resize-pane -R 5 | |
#bind-key -r M-j resize-pane -D | |
#bind-key -r M-k resize-pane -U | |
#bind-key -r M-h resize-pane -L | |
#bind-key -r M-l resize-pane -R | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment