annotate dot_tmux.conf @ 1045:7db5c9c8016f

feat: Add fzf cd history picker
author Zeger Van de Vannet <zeger@vandevan.net>
date Sat, 04 May 2024 11:47:05 +0200
parents 7218c2192214
children 632e28eb77b2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 # Nested TMUX sessions (from
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
2 # https://medium.freecodecamp.org/tmux-in-practice-local-and-nested-remote-tmux-sessions-4f7ba5db8795)
348
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
3 bind -T root F11 \
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
4 set prefix None \;\
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
5 set key-table off \;\
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 set status-right "#[fg=colour0,bg=colour1] DISABLED #[fg=colour3,bg=colour0] #{session_name}#[fg=colour1] | #[fg=colour2]%d %b %l:%M %p "
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
7 refresh-client -S \;\
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
8
348
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
9 bind -T off F11 \
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 set -u prefix \;\
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 set -u key-table \;\
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
12 set -u status-right \;\
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 refresh-client -S
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 # improve colors
355
44442a6b8aa6 Set the smso option to make italics work in tmux
zegervdv <zegervdv@me.com>
parents: 348
diff changeset
15 set -g default-terminal 'tmux-256color'
44442a6b8aa6 Set the smso option to make italics work in tmux
zegervdv <zegervdv@me.com>
parents: 348
diff changeset
16 set -as terminal-overrides ',xterm*:Tc:smso=\E[3m'
44442a6b8aa6 Set the smso option to make italics work in tmux
zegervdv <zegervdv@me.com>
parents: 348
diff changeset
17 set -g -a terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
18 set-option -g allow-rename off
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 set-window-option -g automatic-rename off
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
20
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
21 # Status bar
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 set -g set-titles 'off'
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 set -g status-position 'top'
697
f2984842d6e2 fix: set background color of tmux status line
zegervdv <zegervdv@me.com>
parents: 668
diff changeset
24 set -g status-style 'bg=#fbfafc'
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 set -g status-left ""
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
26 set -g status-right-length 200
668
a74af5498b31 update tmux colors
zegervdv <zegervdv@me.com>
parents: 614
diff changeset
27 set -g status-right "#[fg=white,bg=#7653c1] vsim #[fg=white,bg=#404a54] #(ps hux -u $(whoami) | grep 'vish' | grep -v -E 'grep|view' | wc -l) #[fg=colour3,bg=default] #[fg=colour0,bg=colour3] load #[fg=white,bg=#404a54] #(cat /proc/loadavg | awk '{ print $3; }' | xargs printf '%2.2f') #[fg=colour3,bg=default] #[fg=colour0,bg=#73b00a] mem #[fg=white,bg=#404a54] #(ps haux | awk -v user=$(whoami) '$1 ~ user { sum += $4 } END { print sum; }' | xargs printf '%2.2f')% #[fg=colour3,bg=default] #[fg=white,bg=#cf4f5f] time #[fg=white,bg=#404a54] %d %b %l:%M %p #[fg=colour3,bg=default] #[fg=colour15,bg=colour8] #{session_name} #[fg=colour0,bg=default]"
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
28
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
29 # Tabs
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
30 setw -g window-status-format " #I #W "
668
a74af5498b31 update tmux colors
zegervdv <zegervdv@me.com>
parents: 614
diff changeset
31 setw -g window-status-style "fg=#404a54,bg=#e3ebf1"
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
32 setw -g window-status-current-format " #I #W "
668
a74af5498b31 update tmux colors
zegervdv <zegervdv@me.com>
parents: 614
diff changeset
33 setw -g window-status-current-style "bg=#404a54,fg=#ffffff"
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
34
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
35 set -g status-justify "left"
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
36
668
a74af5498b31 update tmux colors
zegervdv <zegervdv@me.com>
parents: 614
diff changeset
37 setw -g window-status-bell-style "fg=#ffffff,bg=#d44950"
a74af5498b31 update tmux colors
zegervdv <zegervdv@me.com>
parents: 614
diff changeset
38 setw -g mode-style "bg=#fbe9ad"
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
39
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 bind s split-window -v -c "#{pane_current_path}"
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
41 bind v split-window -h -c "#{pane_current_path}"
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 bind c command-prompt -p "Name:" "new-window -c \"#{pane_current_path}\" -n %%"
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
43
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 # Enable delete in command sequencer
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 bind h send-keys 'c-h'
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
46
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
47 # Open man pages in split
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
48 bind @ command-prompt -p "Man:" "split-window -v 'exec man %%'"
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
49
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
50 # act like vim
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 bind Escape copy-mode
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
52 set-window-option -g mode-keys vi
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
53 bind-key -T copy-mode-vi 'v' send -X begin-selection
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 bind-key -T copy-mode-vi 'V' send -X select-line
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
55 bind-key -T copy-mode-vi 'r' send -X rectangle-toggle
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
56 unbind-key -T copy-mode-vi MouseDragEnd1Pane
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 unbind -T copy-mode-vi MouseDragEnd1Pane
770
9f4e4087e2e7 fix: paste current selection on middlemouse
zegervdv <zegervdv@me.com>
parents: 768
diff changeset
58 # Copy and Paste selection on middle mouse
9f4e4087e2e7 fix: paste current selection on middlemouse
zegervdv <zegervdv@me.com>
parents: 768
diff changeset
59 bind-key -T copy-mode-vi MouseDown2Pane send-keys -X copy-pipe-and-cancel "tmux paste-buffer"
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
60
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
61 # Smart pane switching with awareness of Vim splits.
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
62 # See: https://github.com/christoomey/vim-tmux-navigator
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
63 is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
64 | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
348
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
65 bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
66 bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
67 bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
68 bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
69 tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
70 if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
71 "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
72 if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
73 "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
74
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
75 bind-key -T copy-mode-vi 'C-h' select-pane -L
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
76 bind-key -T copy-mode-vi 'C-j' select-pane -D
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
77 bind-key -T copy-mode-vi 'C-k' select-pane -U
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
78 bind-key -T copy-mode-vi 'C-l' select-pane -R
f220567b278e Update tmux-vim mapping
Zeger Van de Vannet <zegervdv@me.com>
parents: 297
diff changeset
79 bind-key -T copy-mode-vi 'C-\' select-pane -l
568
91d89b637bd6 clean up tmux.conf
zegervdv <zegervdv@me.com>
parents: 565
diff changeset
80
844
9e2c5662c2cb feat: enable OSC 133 in tmux and zsh
zegervdv <zegervdv@me.com>
parents: 822
diff changeset
81 bind-key -T copy-mode-vi ] send-keys -X next-prompt
9e2c5662c2cb feat: enable OSC 133 in tmux and zsh
zegervdv <zegervdv@me.com>
parents: 822
diff changeset
82 bind-key -T copy-mode-vi [ send-keys -X previous-prompt
9e2c5662c2cb feat: enable OSC 133 in tmux and zsh
zegervdv <zegervdv@me.com>
parents: 822
diff changeset
83
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
84 unbind C-b
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
85 set -g prefix C-Space
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
86 bind Space send-prefix
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
87 set -g escape-time 20
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
88
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
89 # start window numbers at 1 to match keyboard order with tmux window order
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
90 set -g base-index 1
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
91
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
92 # renumber windows sequentially after closing any of them
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
93 set -g renumber-windows on
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
94
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
95 bind-key r source ~/.tmux.conf
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
96
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
97 # Fix hightlighting in less
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
98 set -ga terminal-overrides ',*:sitm@,ritm@'
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
99
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
100 # increase scrollback lines
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
101 set -g history-limit 100000
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
102
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
103 setw -g mouse on
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
104
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
105 set -g focus-events on
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
106
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
107 # Allow for visual bell when a command completes
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
108 set-window-option -g visual-bell on
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
109 set-window-option -g bell-action other
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
110
614
ad5e870cd4b2 replace osc52 plugin
zegervdv <zegervdv@me.com>
parents: 568
diff changeset
111 # Allow OSC52 from applications
ad5e870cd4b2 replace osc52 plugin
zegervdv <zegervdv@me.com>
parents: 568
diff changeset
112 set -s set-clipboard on
ad5e870cd4b2 replace osc52 plugin
zegervdv <zegervdv@me.com>
parents: 568
diff changeset
113
257
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
114 # Local config
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
115 if-shell "[ -f ~/.tmux.conf.local ]" 'source ~/.tmux.conf.local'
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
116
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
117 # Config
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
118 set -g @scroll-without-changing-pane "on"
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
119 set -g @emulate-scroll-for-no-mouse-alternate-buffer "on"
d726921aaabe Clean start of dotfiles repo
zegervdv <zegervdv@me.com>
parents:
diff changeset
120
377
ce08bc71b455 Manually manage tmux plugins
Zeger Van de Vannet <zegervdv@me.com>
parents: 355
diff changeset
121 run-shell ~/.tmux/plugins/tmux-better-mouse-mode/scroll_copy_mode.tmux
ce08bc71b455 Manually manage tmux plugins
Zeger Van de Vannet <zegervdv@me.com>
parents: 355
diff changeset
122 run-shell ~/.tmux/plugins/tmux-yank/yank.tmux
505
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
123 run-shell ~/.tmux/plugins/tmux-thumbs/tmux-thumbs.tmux
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
124
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
125 set -g @thumbs-osc52 0
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
126 # Swap behaviour
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
127 set -g @thumbs-command 'tmux set-buffer -w -- {} && tmux paste-buffer && tmux display-message \"Copied {}\"'
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
128 set -g @thumbs-upcase-command 'tmux set-buffer -w -- {} && tmux display-message \"Copied {}\"'
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
129 set -g @thumbs-hint-fg-color red
38b7afc9e492 Add tmux plugins
zegervdv <zegervdv@me.com>
parents: 470
diff changeset
130 set -g @thumbs-reverse enabled
470
e4937efdf43e Add some popup bindings for tmux
Zeger Van de Vannet <zegervdv@me.com>
parents: 377
diff changeset
131
e4937efdf43e Add some popup bindings for tmux
Zeger Van de Vannet <zegervdv@me.com>
parents: 377
diff changeset
132 bind-key -n 'C-q' popup -w50% -h 90% -x 90% -E -d '#{pane_current_path}' chezmoi cd
528
9af6e508f630 toggle zoom with c-z when zoomed, else fallback to backgrounding
zegervdv <zegervdv@me.com>
parents: 507
diff changeset
133
9af6e508f630 toggle zoom with c-z when zoomed, else fallback to backgrounding
zegervdv <zegervdv@me.com>
parents: 507
diff changeset
134 bind-key -n 'C-z' if -F '#{window_zoomed_flag}' "resize-pane -Z" "send-keys C-z"
564
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
135
848
7218c2192214 feat: only enable c-s selection in copy mode
Zeger Van de Vannet <zegervdv@me.com>
parents: 844
diff changeset
136 bind-key -T copy-mode-vi 'C-s' {
564
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
137 copy-mode
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
138 send -X clear-selection
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
139 send -X start-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
140 send -X start-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
141 send -X cursor-up
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
142 send -X cursor-up
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
143 send -X start-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
144 send -X start-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
145
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
146 if -F "#{m:*->\u00A0*,#{copy_cursor_line}}" {
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
147 send -X search-forward-text "->\u00A0"
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
148 send -X stop-selection
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
149 send -X -N 2 cursor-right
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
150 send -X begin-selection
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
151 send -X end-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
152 send -X end-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
153 if "#{m:*->\u00A0?*,#{copy_cursor_line}}" {
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
154 send -X cursor-left
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
155 }
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
156 } {
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
157 send -X end-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
158 send -X end-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
159 send -X begin-selection
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
160 send -X search-backward-text "->\u00A0"
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
161 send -X end-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
162 send -X end-of-line
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
163 send -X cursor-right
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
164 send -X stop-selection
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
165 }
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
166 }
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 528
diff changeset
167
565
697909624a17 Map quickfix edit on s (e is too useful in vi mode)
Zeger Van de Vannet <zegervdv@me.com>
parents: 564
diff changeset
168 bind-key -T copy-mode-vi 's' send -X copy-pipe-and-cancel "cat > /tmp/error.txt && tmux new-window -n 'quickfix' -c \"#{pane_current_path}\" 'nvim -q /tmp/error.txt && rm -f /tmp/error.txt'"
768
eeaf0d561877 fix: unbind mouse drag to avoid jumping back when selecting in tmux
zegervdv <zegervdv@me.com>
parents: 697
diff changeset
169
822
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
170
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
171 bind-key 'o' {
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
172 copy-mode
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
173 send -X clear-selection
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
174 send -X start-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
175 send -X start-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
176 send -X cursor-up
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
177 send -X cursor-up
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
178 send -X start-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
179 send -X start-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
180
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
181 if -F "#{m:*->\u00A0*,#{copy_cursor_line}}" {
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
182 send -X search-forward-text "->\u00A0"
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
183 send -X stop-selection
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
184 send -X -N 2 cursor-right
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
185 send -X begin-selection
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
186 send -X end-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
187 send -X end-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
188 if "#{m:*->\u00A0?*,#{copy_cursor_line}}" {
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
189 send -X cursor-left
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
190 }
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
191 } {
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
192 send -X end-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
193 send -X end-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
194 send -X begin-selection
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
195 send -X search-backward-text "->\u00A0"
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
196 send -X end-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
197 send -X end-of-line
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
198 send -X cursor-right
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
199 send -X stop-selection
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
200 }
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
201
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
202 send -X copy-pipe-and-cancel "grep -oE '([^\s]+)\/([^/]+)' | fzf-tmux -d20 --multi --bind alt-a:select-all,alt-d:deselect-all | paste -sd \" \" - | xargs -I {} tmux send-keys -t #{pane_id} \"{}\""
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
203
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
204 }
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
205
0c2dcf35d759 feat: show fzf to select paths from last command output
zegervdv <zegervdv@me.com>
parents: 770
diff changeset
206
768
eeaf0d561877 fix: unbind mouse drag to avoid jumping back when selecting in tmux
zegervdv <zegervdv@me.com>
parents: 697
diff changeset
207 # unbind after loading plugins
eeaf0d561877 fix: unbind mouse drag to avoid jumping back when selecting in tmux
zegervdv <zegervdv@me.com>
parents: 697
diff changeset
208 unbind -T copy-mode-vi MouseDragEnd1Pane