
ファイルのリストを見て、ターミナルで対話的に開きたい場合、私は
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