aboutsummaryrefslogtreecommitdiff
path: root/.config/tmux/tmux.conf
diff options
context:
space:
mode:
Diffstat (limited to '.config/tmux/tmux.conf')
-rw-r--r--.config/tmux/tmux.conf130
1 files changed, 40 insertions, 90 deletions
diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf
index e487f2d..0ead12f 100644
--- a/.config/tmux/tmux.conf
+++ b/.config/tmux/tmux.conf
@@ -120,97 +120,47 @@ bind -n M-0 select-window -t :=0
#――――――――――――――――――――――――――――――――――――――――――
-# navigate across tmux-vim
-is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
- | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
-bind -Troot C-w if-shell "$is_vim" "send-keys C-w" "switch-client -Tnav; refresh-client -S"
-
-bind -Tnav C-w send-keys 'C-w'
-
-# {{{ keybinds: select-pane
-bind -Tnav h select-pane -L
-bind h select-pane -L
-bind -Tnav C-h select-pane -L
-bind C-h select-pane -L
-bind -Tnav j select-pane -D
-bind j select-pane -D
-bind -Tnav C-j select-pane -D
-bind C-j select-pane -D
-bind -Tnav k select-pane -U
-bind k select-pane -U
-bind -Tnav C-k select-pane -U
-bind C-k select-pane -U
-bind -Tnav l select-pane -R
-bind l select-pane -R
-bind -Tnav C-l select-pane -R
-bind C-l select-pane -R
-bind -Tnav p select-pane -l
-bind p select-pane -l
-bind -Tnav C-p select-pane -l
-bind C-p select-pane -l
-# keybinds: select-pane }}}
-
-# {{{ keybinds: split-window
-bind -Tnav "\\" split-window -h -c "#{pane_current_path}" # vertical
-bind "\\" split-window -h -c "#{pane_current_path}" # vertical
-bind -Tnav "|" split-window -fh -c "#{pane_current_path}" # full vertical
-bind "|" split-window -fh -c "#{pane_current_path}" # full vertical
-bind -Tnav "-" split-window -v -c "#{pane_current_path}" # horizontal
-bind "-" split-window -v -c "#{pane_current_path}" # horizontal
-bind -Tnav "_" split-window -fv -c "#{pane_current_path}" # full horizontal
-bind "_" split-window -fv -c "#{pane_current_path}" # full horizontal
-# keybinds: split-window }}}
-
-# {{{ keybinds: resize-pane
-bind -r -Tnav M-h resize-pane -L 10
-bind -r M-h resize-pane -L 10
-bind -r -Tnav M-j resize-pane -D 5
-bind -r M-j resize-pane -D 5
-bind -r -Tnav M-k resize-pane -U 5
-bind -r M-k resize-pane -U 5
-bind -r -Tnav M-l resize-pane -R 10
-bind -r M-l resize-pane -R 10
-# keybinds: resize-pane }}}
-#### Pane Movement/Control ###
-#
-## 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|l?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'"
-#
-## Copy Mode vi-directional keys
-#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
-#
-## Change horizontal split <Prefix>% and Vertical split <Prefix>" to <Prefix>h and <Prefix>v respectively and change current working directory
-#bind v split-window -h -c "#{pane_current_path}"
-#bind h split-window -v -c "#{pane_current_path}"
-#
-## Pane resizing, <Prefix> then shift + vi-directional keys, default is D,U,L,R
-#bind -r H resize-pane -L 20
-#bind -r J resize-pane -D 20
-#bind -r K resize-pane -U 20
-#bind -r L resize-pane -R 20
-#
-## Pane resizing, <Prefix> then alt + vi-directional keys
-#bind-key M-j resize-pane -D 5
-#bind-key M-k resize-pane -U 5
-#bind-key M-h resize-pane -L 5
-#bind-key M-l resize-pane -R 5
+### Pane Movement/Control ###
+
+# 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|l?n?vim?x?)(diff)?$'"
+
+bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
+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'"
+
+# Copy Mode vi-directional keys
+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
+
+# Change horizontal split <Prefix>% and Vertical split <Prefix>" to <Prefix>h and <Prefix>v respectively and change current working directory
+bind v split-window -h -c "#{pane_current_path}"
+bind h split-window -v -c "#{pane_current_path}"
+
+# Pane resizing, <Prefix> then shift + vi-directional keys, default is D,U,L,R
+bind -r H resize-pane -L 20
+bind -r J resize-pane -D 20
+bind -r K resize-pane -U 20
+bind -r L resize-pane -R 20
+
+# Pane resizing, <Prefix> then alt + vi-directional keys
+bind-key M-j resize-pane -D 5
+bind-key M-k resize-pane -U 5
+bind-key M-h resize-pane -L 5
+bind-key M-l resize-pane -R 5
# Hide a pane and bring it back with <Prefix>! and <Prefix>@ respectively
bind-key ! break-pane -d -n _hidden_pane