Usando vim
, você pode fazer isso:
$ db get stuff | vim -
O -
informa vim
para ler sua entrada de texto de stdin.
Eu encontrei um script CSH muito legal no trabalho que torna uma consulta freqüentemente usada ao Postgres um pouco mais amigável - exceto que ele despeja a saída no shell. Esta é a parte do script que gera a saída:
psql "select datauri from grid where datauri like '%${1}%'" | awk -F '/' '{print $3 "\t" $4 "\t" $7 "\t" $8 "\t" $9 "\t" $10 "\t" $11}'
O nome do script é "DB"
Eu tentei enviar essa saída diretamente para um editor de texto para facilitar o processamento da saída:
$ db get stuff | emacs -nw
Eu só recebo um emacs em branco (vi ou gedit).
Existe alguma maneira de alterar o script, ou qualquer outra coisa, para que a saída seja enviada diretamente para um editor de texto, e não apenas para o shell?
Você pode executar o formulário de script com o emacs, de fato, e ele criaria um novo buffer para sua saída. Apenas use M -! (que executa shell-command
), especifique o comando e mude para o buffer *Shell Command Output*
.
Pelo comando 'r' do vim, a saída de um comando pode ser inserida em uma linha específica como :10r !db get stuff
. '10r' insere na 11ª linha e '!' obtém a saída do seguinte comando.