Gibt es eine einfachere Möglichkeit, in meinem Terminal zu navigieren, wie etwa tmux?

Gibt es eine einfachere Möglichkeit, in meinem Terminal zu navigieren, wie etwa tmux?

Angenommen, ich möchte eine Liste von Dateien durchsehen und sie interaktiv über das Terminal öffnen. Ich verwende

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

oder so ähnlich. Die andere Möglichkeit ist, mit der Maus auf den angezeigten Dateinamen zu klicken und ihn dann einzufügen.

Mit Tmux kann ich in meinem Terminal navigieren, Zeilen kopieren und in Befehle einbauen. Gibt es eine Möglichkeit, dies in Bash oder Zsh oder vielleicht direkt im Terminalemulator zu tun?

Antwort1

Legen Sie zunächst die Auswahlmöglichkeiten in einem Array ab. Bash-Syntax:

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

Zsh-Syntax:

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

Die einfache, aber nicht sehr benutzerfreundliche Möglichkeit, den Benutzer eines der Elemente auswählen zu lassen, besteht in der Verwendung desselectbauen.

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

(Bash-Syntax; dies funktioniert auch in zsh, kann dort aber vereinfacht werden.)

Für eine schönere Oberfläche können Sie verwendenDialog.

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

verwandte Informationen