Você pode integrar e apresentar ainda mais a saída de comando sequencial do moreutils vipe no vim usando divisões sucessivas etc?

1

Eu usei o pacote moreutils algumas vezes e acho que ele faz você pensar mais sobre os utilitários básicos e perspicaz (e divertido). Por exemplo, vipe permite executar um editor - como vim - no meio de um pipeline e editando os dados antes de continuar a execução 1 . Por exemplo:

function refcheck_vipe() { echo -n "$@ documentation last udate: "; links -dump "http://www.gnu.org/software/$@/manual"| vipe | grep 'last updated' | vipe | cut -d ' ' -f 7,8,9 | vipe ; }
# refcheck_vipe grep

Toda vez que (3) vipe é arbitrariamente colocado no pipeline e, portanto, chamado, você é apresentado com os dados no vim e, assim que sair, a execução continua. Então, aqui você terá a página da web , a linha combinada e finalmente a seqüência . Talvez o que esteja faltando é que eu mantenha os buffers usados ao longo do caminho para comparar o conteúdo em alguns casos ...

Eu não sabia que você poderia multiplex o layout dos buffers em% código%(!). Agora eu me pergunto se eu fosse lançar o meu comando no vim cli , poderia haver uma maneira de redirecionar todas as "etapas" de execução do vipe para um buffer diferente. E permita que o arquivo vim continue exibindo o conteúdo de alguma forma depois que eu sair. De fato, você deve fazer tmp para a execução continuar até o próximo "passo", então não sei como conciliar o que acabei de dizer com isso. Por outro lado, notei que posso fazer :q , em seguida, :split new e a saída disso é para isso.

Para resumir e adicionar contexto, estou pensando em algo assim:

command1 | vipe1 | command2 | vipe2 | command n | vipe n

would be wrapped by the answer to produce this in vim(the vipe part):
-------------------------
|       |       |       |           A buffer would open to the right side
| vipe  | vipe  | vipe  |           for every vipe command in the pipeline.
| step1 | step..| step n|           
|       |       |       |
|       |       |       |
-------------------------
|           |           |           Bottom left you see a "file manager".
|find . | \ | whatever  |           Its contents could be refreshed, from
|vidir -    |           |           time to time.
-------------------------
:cli

Eu sei que :r! ls não é um gerenciador de janelas ou multiplexador . O objetivo aqui é mostrar o processamento de dados em comandos shell, melhorando minhas habilidades com o vim 2 . O foco é vim , mas considerando que vim lê a variável EDITOR, eu também leria com interesse uma solução alavancando vipe .

Então, há algum alias / function / setup que eu poderia implementar para realizar o que descrevi (permitindo a comparação da saída de uma maneira integrada adicionando buffers visualmente no lado direito do editor, para cada emacs comando no pipeline)?

1. Se eu juntar alguns comandos com expressões regulares e não funcionar (geralmente o caso), vou voltar atrás, removendo comandos e simplificando expressões no pipeline até que eu possa isolar o problema. Então vipe pode ajudar em alguns casos.

2. Bem como lidar com o cenário em que tenho de usar um sistema e Openbox ou i3 não está presente !!

[..] Não referenciado, mas fazendo uma aparição no exemplo de código, vipe

    
por jus cogens prime 08.08.2014 / 12:12

1 resposta

1

vipe usa arquivos temporários (para mim em /tmp ) para passar e receber o conteúdo do pipe de / para o Vim. Por causa do pipeline, invocações de vipe anteriores não podem mais ser editadas novamente; eles já foram relidos por vipe e enviados pelo pipeline. Então, deve ser suficiente para salvar o arquivo temporário vipe anterior (como o original é removido pelo vipe), e reabrir aquele arquivo na próxima invocação do Vim a partir do vipe.

Os seguintes autocmds fazem isso para uma única etapa de pipeline anterior. Como não consegui reconhecer nenhum padrão nos arquivos temporários vipe, isso lida amplamente com todos os arquivos abertos em /tmp ; seria melhor se o vipe fosse reconfigurado para usar um diretório separado ou um esquema de nomenclatura exclusivo:

Esboço

autocmd BufWritePost /tmp/* silent! bdelete ~/.previous-vipe | keepalt write! ~/.previous-vipe
autocmd BufRead /tmp/* pedit ~/.previous-vipe
    
por 08.08.2014 / 13:49

Tags