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).

Ciro Santilli OurBigBook.com
  • 347,512
  • 102
  • 1,199
  • 985
Andres Riofrio
  • 9,851
  • 7
  • 40
  • 60

2 Answers2

2

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

Andrew Aylett
  • 39,182
  • 5
  • 68
  • 95
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
  • 10,417
  • 10
  • 64
  • 114