Existe uma maneira mais fácil de navegar no meu terminal, ala tmux?

1

Suponha que eu queira olhar através de uma lista de arquivos e interativamente abri-lo através do terminal, eu tenho usado

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

ou algo parecido. A outra opção é clicar no nome do arquivo que aparece usando o mouse e colá-lo.

Tmux me permite navegar pelo meu terminal, copiar linhas e incorporá-las em comandos. Existe uma maneira de fazer isso em bash ou zsh, ou talvez diretamente no emulador de terminal?

    
por user128063 24.09.2016 / 06:44

1 resposta

1

Primeiro, coloque as opções em uma matriz. Sintaxe de Bash:

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

Sintaxe do Zsh:

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

A maneira de baixa tecnologia, mas não muito amigável para permitir que o usuário selecione um dos itens, é usar o select construct .

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

(sintaxe Bash; isso também funciona em zsh, mas pode ser simplificado.)

Para uma interface mais agradável, você pode usar o diá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
    
por 24.09.2016 / 22:33

Tags