tmux 小技巧

警告
本文最后更新于 2023-04-17,文中内容可能已过时。

总结一下 tmux 的使用技巧与相关配置。

配置

tmux3 特别注意

注意,千万一定要把 set -g @split-statusbar-mode 'off'

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
set -g @plugin 'charlietag/tmux-split-statusbar'
run-shell /home/william/.tmux/plugins/tmux-split-statusbar/tmux-split-statusbar.tmux
set -g @plugin 'charlietag/tmux-split-statusbar'
set -g @split-statusbar-mode 'off'                 # [ on | off]

set -g @split-statusbar-bindkey '-n F11'          # [ M-s | -n F11 | ... ]
                                                  # bindkey for toggle statusbar-mode
                                                  # define yourself just like bind-key, default: M-s

set -g @split-status-hide-bindkey '-n F12'        # [ M-d | -n F12 | ... ]
                                                  # bindkey for status-left / status-right hiding
                                                  # define yourself just like bind-key, default: M-d
## =============================================================================

set -g pane-border-status bottom
## 只显示简单的正在运行命令
# set -g pane-border-format "#P #T #{pane_current_command} "
## 显示正在运行的命令所有参数
# set -g pane-border-format '#(ps --no-headers -t #{pane_tty} -o args -O-c)'
set -g pane-border-format '#P #T #(ps --no-headers -t #{pane_tty} -o args -O-c) >'

快捷键设置

  • prefix-s: 快速切换 sessions

    1
    2
    
    ## switch between sessoin
    bind-key s choose-session
  • prefix-o: 快速重命名 panel

    1
    2
    
    ## rename-window
    bind-key o command-prompt -I "#W" "rename-window '%%'"
  • prefix-f: 调用 fzf 快速查找 panel, 需要关闭原来的 tmux-fzf, 参考:tmux and fzf: fuzzy tmux session/window/pane switcher

    1. 建立一个可执行文件

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      
      #!/bin/bash
      
      # customizable
      LIST_DATA="#{window_name} #{pane_title} #{pane_current_path} #{pane_current_command}"
      FZF_COMMAND="fzf-tmux -p --delimiter=: --with-nth 4 --color=hl:2"
      
      # do not change
      TARGET_SPEC="#{session_name}:#{window_id}:#{pane_id}:"
      
      # select pane
      LINE=$(tmux list-panes -a -F "$TARGET_SPEC $LIST_DATA" | $FZF_COMMAND) || exit 0
      # split the result
      args=(${LINE//:/ })
      # activate session/window/pane
      tmux select-pane -t ${args[2]} && tmux select-window -t ${args[1]} && tmux switch-client -t ${args[0]}
    2. .tmux.conf 配置

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      
      ## fzf
      # set -g @plugin 'sainnhe/tmux-fzf'
      ## prefix-f
      # TMUX_FZF_LAUNCH_KEY="f"
      # TMUX_FZF_ORDER="session|window|pane|command|keybinding|clipboard|process"
      ## menu
      # TMUX_FZF_MENU=\
      # "foo\necho 'Hello!'\n"\
      # "bar\nls ~\n"\
      # "sh\nsh ~/test.sh\n"
      bind-key f run-shell -b /home/william/.tmux/tmux-switch-pane.sh

相关内容

william 支付宝支付宝
william 微信微信
0%