Created
May 9, 2024 06:16
-
-
Save stevobengtson/895d3a83ed93a39294846e8f0160b0f1 to your computer and use it in GitHub Desktop.
Tmux configuration
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
set -g default-terminal "tmux-256color" | |
set -ag terminal-overrides ",xterm-256color:RGB" | |
set -g prefix C-a | |
unbind C-b | |
bind-key C-a send-prefix | |
unbind % | |
bind | split-window -h | |
unbind '"' | |
bind - split-window -v | |
unbind r | |
bind r source-file ~/.tmux.conf | |
bind j resize-pane -D 5 | |
bind k resize-pane -U 5 | |
bind l resize-pane -R 5 | |
bind h resize-pane -L 5 | |
bind -r m resize-pane -Z | |
set -g mouse on | |
set-window-option -g mode-keys vi | |
bind-key -T copy-mode-vi 'v' send -X begin-selection # start selecting text with "v" | |
bind-key -T copy-mode-vi 'y' send -X copy-selection # copy text with "y" | |
unbind -T copy-mode-vi MouseDragEnd1Pane # don't exit copy mode when dragging with mouse | |
# remove delay for exiting insert mode with ESC in Neovim | |
set -sg escape-time 10 | |
# tpm plugin | |
set -g @plugin 'tmux-plugins/tpm' | |
# list of tmux plugins | |
set -g @plugin 'christoomey/vim-tmux-navigator' | |
set -g @plugin 'tmux-plugins/tmux-resurrect' # persist tmux sessions after computer restart | |
set -g @plugin 'tmux-plugins/tmux-continuum' # automatically saves sessions for you every 15 minutes | |
set -g @plugin 'fabioluciano/tmux-tokyo-night' | |
set -g @resurrect-capture-pane-contents 'on' | |
set -g @continuum-restore 'on' | |
# Smart pane switching with awareness of Vim splits. | |
# See: https://github.com/christoomey/vim-tmux-navigator | |
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ | |
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" | |
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' | |
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' | |
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' | |
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' | |
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' | |
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ | |
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" | |
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ | |
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" | |
bind-key -T copy-mode-vi 'C-h' select-pane -L | |
bind-key -T copy-mode-vi 'C-j' select-pane -D | |
bind-key -T copy-mode-vi 'C-k' select-pane -U | |
bind-key -T copy-mode-vi 'C-l' select-pane -R | |
bind-key -T copy-mode-vi 'C-\' select-pane -l | |
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | |
# git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm | |
run '~/.tmux/plugins/tpm/tpm' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment