9

I want to look at the output of a command in a GVim window that's already opened.

To look at the output of a command in a new GVim window, I'd do:

mycommand | gvim -

To open a file an existing window, I'd do:

gvim --remote-silent myfile

How do I use them together? mycommand | gvim --remote-silent - does not work (it thinks - is a file in the current directory).

Andres Riofrio
  • 9,021
  • 6
  • 38
  • 59

2 Answers2

2

Try gvim --remote-silent <(mycommand).

Andrew Aylett
  • 37,919
  • 5
  • 65
  • 94
2

Assume you have Gvim running with default servername GVIM, here's a command to execute :echo 'It works!' in the running Gvim:

vim --servername GVIM --remote-send ":echo 'It works!'<CR>"

This command returns nothing, it just sends ":echo 'It works!'<CR>" to the server and returns immediately.

If you need to evalute an expression and get the result, you might use this command:

vim --servername GVIM --remote-expr "version"

(version number will be returned)

vim --servername GVIM --remote-expr "2+2"

("4" will be returned)

Of course, you can declare your own function in Vim and use it as a expression, just like that:

vim --servername GVIM --remote-expr "MyOwnFunction()"
Dmitry Frank
  • 9,919
  • 9
  • 59
  • 107