如何消除 tmux 中的“未知选项”错误?

如何消除 tmux 中的“未知选项”错误?

我有一个设置变量的 bash 脚本:

tmux setw @tmux_man_pane $pane

当第一次调用使用该变量的 bash 函数时,我得到:

unknown option: @tmux_man_pane

我把它放在 .tmux.conf 中:

setw -g tmux_man_pane 0

setw -g tmux_cheat_pane 0

但仍然收到错误。

上下文代码:

tmux_man_page() {
  if [[ "$TERM" =~ 'screen' ]] && [[ -n "$TMUX" ]]; then

    pane=$(tmux showw -v @tmux_man_pane)
    output=$(tmux list-panes -t ${pane} 2>&1)

    if [[ $pane ]] && ! [[ -z "$pane" ]] && ! [[ $output =~ 'find pane' ]]; then
      tmux -q respawn-pane -k -t $pane man $1
    else
      tmux split-window -vf man $1
      pane=$(tmux display-message -p "#{pane_id}")
      tmux setw @tmux_man_pane $pane
      tmux select-pane -t {last}
    fi
  fi
}

答案1

  • 将命令从 showw 更改为 show-options
  • 使用 -w 开关作为窗口选项
  • 使用 -q 开关作为安静选项来抑制未设置变量引起的错误

所以命令现在是:

show-options -vwq @tmux_man_pane

答案2

showw 和 show -w 完全相同。

问题是该选项尚不存在,最好的办法是按照建议添加 -q 或以其他方式处理脚本中的错误。

如果您想设置一个初始值,那么在 .tmux.conf 中这样做是没有用的(即使您为选项使用了正确的名称!),因为窗口尚不存在,您需要使用一个或更多的钩子(可能是窗口链接的)。不过,我建议只处理脚本中尚未设置的错误。

相关内容