Come posso reindirizzare l'output da più programmi / script per aprirli in VIM come suddivisioni dello schermo?


1

Quello che voglio è un comando da eseguire dalla shell che supporta: -

myprog1 'someinputfile1' |vim -

e

myprog2 'someinputfile2' |vim -

uscite aperte in vim in schermo diviso.

https://stackoverflow.com/questions/8287164/how-to-redirect-stdout-output-to-a-new-vim-tab?rq=1 mi ha detto di usare vsp|myprog <someinputfile>per dividere una finestra vim già aperta.


Non capisco perché questo è stato migrato. È una domanda Vim e la risposta accettata è una risposta Vim. Ho pensato che le domande di Vim su StackOverflow fossero soddisfacenti.
Prince Goulash,

Risposte:


5

Se sei su Linux, prova questo:

vim -o <(myprog1 'someinputfile1') <(myprog2 'someinputfile2')

Passa -oa -Odividere verticalmente.


Il programma accetta anche un file di input. Funziona ancora?

Puoi avere <(myprog arg1 arg2), o<(myprog1 arg1 | myprog2 arg2)
kev

0

Bene, il secondo è facile, perché è solo una sequenza di comandi:

ls | vim -
:vertical split
:enew
:read !ls

Se vuoi diffsplit

ls | vim -
:diffthis
:vertical split
:enew
:read !ls
:diffthis

Potresti creare una mappatura della tastiera per questo, qualcosa del genere

:map <F12> :diffthis\|vertical split\|enew\|diffthis<CR>:read !

0

È possibile utilizzare l' -cargomento di Vim per leggere il primo output, aprire una nuova scheda e quindi leggere il secondo output. Per esempio:

vim -c ':read !ls dir1' -c ':tabnew | read !ls dir2'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.