Add nice fzf methods to .tmux.conf
This commit is contained in:
parent
0afedec288
commit
be7baeb322
1 changed files with 35 additions and 1 deletions
|
@ -68,7 +68,41 @@ set -g status-right "#(acpi | tr -d , | awk 'NR==1{printf \"%%s %%s < \", $3, $4
|
|||
bind C-c new-session
|
||||
|
||||
# find session
|
||||
bind C-f command-prompt -p find-session 'switch-client -t %%'
|
||||
bind C-f new-window -n "session-switcher" "\
|
||||
tmux list-sessions -F '#{?session_attached,,#{session_name}}' |\
|
||||
awk 'NF>0{print}' |\
|
||||
fzf --print0 --reverse --header jump-to-session --preview 'tmux capture-pane -pt {}' |\
|
||||
xargs -0 tmux switch-client -t"
|
||||
|
||||
bind C-n new-window -n "window-switcher" "\
|
||||
tmux list-windows -F '#{?window_active,,#{session_id}:#{window_index} #{session_name} > #{window_name}}' |\
|
||||
awk 'NF>0{print}' |\
|
||||
fzf --reverse --header jump-to-window --preview \"tmux capture-pane -pt {1}\" |\
|
||||
awk '{print $1}' |\
|
||||
xargs tmux switch-client -t"
|
||||
|
||||
bind C-w new-window -n "global-window-switcher" "\
|
||||
CURRENT_INFO=\"\$(tmux display-message -p '0:#{session_id}:#{window_index}')\";\
|
||||
tmux list-windows -aF '#{window_last_flag}:#{session_id}:#{window_index} #{session_name} > #{window_name}' |\
|
||||
awk -v cur_info_raw=\"\$CURRENT_INFO\" 'BEGIN{split(cur_info_raw,cur_info,\":\")} {split($1,this_info,\":\"); if($1 == cur_info_raw || (this_info[1] && this_info[2] == cur_info[2])) next; print gensub(\"^[01]:\",\"\",1)}' |\
|
||||
fzf --reverse --header global-jump-to-window --preview 'tmux capture-pane -pt {1}' |\
|
||||
awk '{print $1}' |\
|
||||
xargs tmux switch-client -t"
|
||||
|
||||
bind C-j new-window -n "pane-switcher" "\
|
||||
tmux list-panes -sF '#{?#{&&:#{window_active},#{pane_active}},,#{session_id}:#{window_index}.#{pane_index} #{session_name} > #{window_name} > #{pane_title}}' |\
|
||||
awk 'NF>0{print}' |\
|
||||
fzf --reverse --header jump-to-pane --preview 'tmux capture-pane -pt {1}' |\
|
||||
awk '{print $1}' |\
|
||||
xargs tmux switch-client -t"
|
||||
|
||||
bind C-k new-window -n "global-pane-switcher" "\
|
||||
CURRENT_INFO=\"\$(tmux display-message -p '0:#{pane_active}:#{session_id}:#{window_index}.#{pane_index}')\";\
|
||||
tmux list-panes -aF '#{window_last_flag}:#{pane_active}:#{session_id}:#{window_index}.#{pane_index} #{session_name} > #{window_name} > #{pane_title}' |\
|
||||
awk -v cur_info_raw=\"\$CURRENT_INFO\" 'BEGIN{split(cur_info_raw,cur_info,\":\")} {split($1,this_info,\":\"); if($1 == cur_info_raw || (this_info[1] && this_info[3] == cur_info[3] && this_info[2] == cur_info[2])) next; print gensub(\"^[01]:[01]:\",\"\",1)}' |\
|
||||
fzf --reverse --header jump-to-pane --preview 'tmux capture-pane -pt {1}' |\
|
||||
awk '{print $1}' |\
|
||||
xargs tmux switch-client -t"
|
||||
|
||||
# pane navigation
|
||||
bind -r h select-pane -L # move left
|
||||
|
|
Loading…
Reference in a new issue