I think your best bet is to open a TTY manually when you detect that stdout is not a tty. You can use for example https://github.com/mattn/go-isatty to determine this. An `os.Open("/dev/tty")` might be enough, otherwise a package like https://github.com/mattn/go-tty shows some of the setup you might need to do. You then give this file as the stdout file descriptor to vim.
Clearly this only works on systems that have a /dev/tty, but you're already limited to system that have a vim so this might be fine. //jb > On 26 Aug 2017, at 07:58, juicemia <hugo.torres1...@gmail.com> wrote: > > Hi everybody. > > I don't know if this question has been asked before, partially because I > don't really even know what to call what I'm trying to do. > > The best I can come up with is that I'm trying to do lazy redirection in bash > but I'm having some trouble. > > A concrete example should help explain: > > I have a Go program. Part of this program's execution is to open up Vim for > some editing. The user can then save and close, and the program will continue > working using the user's input into Vim. > > That works well. However, it breaks down when I do something like the > following: > > program | grep 'foo' > > When I do this, Vim complains about stdout not being a terminal. I realize > this is because the pipe redirects the stdout of program to the stdin of grep > _before_ the execution of program, not after. > > Is there any way I can get the redirection to happen _after_ program has > executed? > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.