¿Existe una manera más fácil de navegar en mi terminal, ala tmux?

¿Existe una manera más fácil de navegar en mi terminal, ala tmux?

Supongamos que quiero revisar una lista de archivos y abrirla interactivamente a través de la terminal, he estado usando

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

o algo así. La otra opción es hacer clic en el nombre del archivo que aparece con el mouse y luego pegarlo.

Tmux me permite navegar por mi terminal, copiar líneas e incorporarlas a los comandos. ¿Hay alguna manera de hacer esto en bash o zsh, o quizás directamente en el emulador de terminal?

Respuesta1

Primero coloque las opciones en una matriz. Sintaxis de bash:

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

Sintaxis de Zsh:

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

La forma de baja tecnología, pero no muy fácil de usar, de permitir que el usuario seleccione uno de los elementos es usar elselectconstruir.

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

(Sintaxis de Bash; esto también funciona en zsh pero allí se puede simplificar).

Para una interfaz más agradable, puede utilizardiálogo.

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

información relacionada