Eu encontrei uma solução que funciona com o vim muito facilmente, então agora posso fazer coisas como esta
$ ls | choose.sh | xargs ....
Isso inicia o vim, permite que eu selecione visualmente o texto desejado e transmite o texto selecionado para stdout quando eu pressiono F4
. Note que eu também poderia apenas editar o buffer e modificá-lo para conter apenas o texto que eu quero selecionar, salvar e sair, e o conteúdo do buffer seria passado para stdout. Então todo o poder do vim para "escolher" algo na linha de comando de forma interativa!
Eu posso fazer isso usando o vim adicionando o seguinte ao meu .vimrc
(snagged daqui )
map <F4> "*yggdG"*pZZ
e salvando o seguinte em um script ( encontrado )
choose.sh
#!/bin/bash
# create temporary file
TMPFILE='mktemp /tmp/vipe.bashXXXXXXXX'
cat > ${TMPFILE}
vim ${TMPFILE} < /dev/tty > /dev/tty
cat ${TMPFILE}
rm ${TMPFILE}