我有一个设置变量的 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 中这样做是没有用的(即使您为选项使用了正确的名称!),因为窗口尚不存在,您需要使用一个或更多的钩子(可能是窗口链接的)。不过,我建议只处理脚本中尚未设置的错误。