有没有更简单的方法来导航我的终端 ala tmux?

有没有更简单的方法来导航我的终端 ala tmux?

假设我想浏览文件列表并通过终端交互式打开它,我一直在使用

locate filename | head -n 1 | xargs xdg-open

或类似的东西。另一种选择是使用鼠标单击显示的文件名,然后粘贴。

Tmux 让我可以导航终端、复制行并将它们合并到命令中。有没有办法在 bash 或 zsh 中或者直接在终端模拟器中执行此操作?

答案1

首先将选项放入数组中。 bash 语法:

IFS=$'\n' read -r -d '' -a choices < <(locate filename)

Zsh 语法:

choices=("${(@f)$(locate filename)}")

让用户选择其中一项的技术含量较低但不太用户友好的方法是使用select构造

select choice in "${choices[@]}"; do
  xdg-open "$choice"
  break
done

(Bash 语法;这也适用于 zsh,但可以简化。)

为了获得更好的界面,您可以使用对话

menu_args=()
for c in "${choices[@]}"; do
  menu_args+=("$c" "$c")
done
if choice=$(dialog --menu "$title" "$LINES" "$COLUMNS" "$LINES" "${menu_args[@]}"); then
  xdg-open "$choice"
fi

相关内容