Last active
June 25, 2023 10:31
-
-
Save fayimora/a6dcff707d6b10068b12d30c770bdd2a to your computer and use it in GitHub Desktop.
Revisions
-
fayimora revised this gist
Jun 25, 2023 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -15,10 +15,10 @@ bind-key ^S split-window -p 50 -c "#{pane_current_path}" # Pane resize in all four directions using vi bindings. # Can use these raw but I map them to shift-ctrl-<h,j,k,l> in iTerm. # bind -r H resize-pane -L 5 # bind -r J resize-pane -D 5 # bind -r K resize-pane -U 5 # bind -r L resize-pane -R 5 # Smart pane switching with awareness of Vim splits. # See: https://github.com/christoomey/vim-tmux-navigator -
fayimora created this gist
Jun 25, 2023 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,152 @@ # Ring the bell if any background window rang a bell set -g bell-action any # Default termtype. If the rcfile sets $TERM, that overrides this value. set -g default-terminal screen-256color # Keep your finger on ctrl, or don't bind-key ^D detach-client # Create splits and vertical splits bind-key v split-window -h -p 50 -c "#{pane_current_path}" bind-key ^V split-window -h -p 50 -c "#{pane_current_path}" bind-key s split-window -p 50 -c "#{pane_current_path}" bind-key ^S split-window -p 50 -c "#{pane_current_path}" # Pane resize in all four directions using vi bindings. # Can use these raw but I map them to shift-ctrl-<h,j,k,l> in iTerm. bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5 # 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 # Use vi keybindings for tmux commandline input. # Note that to get command mode you need to hit ESC twice... # set -g status-keys vi # Use vi keybindings in copy and choice modes # setw -g mode-keys vi # easily toggle synchronization (mnemonic: e is for echo) # sends input to all panes in a given window. bind e setw synchronize-panes on bind E setw synchronize-panes off # set first window to index 1 (not 0) to map more to the keyboard layout... set-option -g base-index 1 set-window-option -g pane-base-index 1 set-window-option -g mouse on # color scheme (styled as vim-powerline) set -g status-left-length 52 set -g status-right-length 451 set -g status-style fg=white,bg=colour234 set -g pane-border-style fg=colour245 set -g pane-active-border-style fg=colour39 set -g message-style fg=colour16,bg=colour221,bold set -g status-left '#[fg=colour235,bg=colour252,bold] ❐ #S #[fg=colour252,bg=colour238,nobold]⮀#[fg=colour245,bg=colour238,bold] #(whoami) #[fg=colour238,bg=colour234,nobold]⮀' set -g window-status-format '#[fg=colour235,bg=colour252,bold] #I #(pwd="#{pane_current_path}"; echo ${pwd####*/}) #W ' set -g window-status-current-format '#[fg=colour234,bg=colour39]⮀#[fg=black,bg=colour39,noreverse,bold] #{?window_zoomed_flag,#[fg=colour228],} #I #(pwd="#{pane_current_path}"; echo ${pwd####*/}) #W #[fg=colour39,bg=colour234,nobold]⮀' set-option -g status-interval 2 # Patch for OS X pbpaste and pbcopy under tmux. set-option -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL" # Screen like binding unbind C-b set -g prefix C-a bind a send-prefix # No escape time for vi mode set -sg escape-time 0 # Screen like binding for last window unbind l bind C-a last-window # Bigger history set -g history-limit 10000 # New windows/pane in $PWD bind c new-window -c "#{pane_current_path}" # Fix key bindings broken in tmux 2.1 set -g assume-paste-time 0 # force a reload of the config file unbind r bind r source-file ~/.tmux.conf \; display "Reloaded!" source-file ~/.fig/tmux set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'aserowy/tmux.nvim' # 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' { if -F '#{pane_at_left}' '' 'select-pane -L' } bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' { if -F '#{pane_at_bottom}' '' 'select-pane -D' } bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' { if -F '#{pane_at_top}' '' 'select-pane -U' } bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' { if -F '#{pane_at_right}' '' 'select-pane -R' } bind-key -T copy-mode-vi 'C-h' if -F '#{pane_at_left}' '' 'select-pane -L' bind-key -T copy-mode-vi 'C-j' if -F '#{pane_at_bottom}' '' 'select-pane -D' bind-key -T copy-mode-vi 'C-k' if -F '#{pane_at_top}' '' 'select-pane -U' bind-key -T copy-mode-vi 'C-l' if -F '#{pane_at_right}' '' 'select-pane -R' # is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" bind -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'resize-pane -L 1' bind -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'resize-pane -D 1' bind -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'resize-pane -U 1' bind -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'resize-pane -R 1' bind-key -T copy-mode-vi M-h resize-pane -L 1 bind-key -T copy-mode-vi M-j resize-pane -D 1 bind-key -T copy-mode-vi M-k resize-pane -U 1 bind-key -T copy-mode-vi M-l resize-pane -R 1 # navigation set -g @tmux-nvim-navigation true set -g @tmux-nvim-navigation-cycle true set -g @tmux-nvim-navigation-keybinding-left 'C-h' set -g @tmux-nvim-navigation-keybinding-down 'C-j' set -g @tmux-nvim-navigation-keybinding-up 'C-k' set -g @tmux-nvim-navigation-keybinding-right 'C-l' # resize set -g @tmux-nvim-resize true set -g @tmux-nvim-resize-step-x 1 set -g @tmux-nvim-resize-step-y 1 set -g @tmux-nvim-resize-keybinding-left 'M-h' set -g @tmux-nvim-resize-keybinding-down 'M-j' set -g @tmux-nvim-resize-keybinding-up 'M-k' set -g @tmux-nvim-resize-keybinding-right 'M-l' run '~/.tmux/plugins/tpm/tpm' # Local config # if-shell "[ -f ~/.tmux.conf.user ]" 'source ~/.tmux.conf.user'