Search code examples
vimmacvimansi-escape

How do I make macvim execute shell commands like it does in Destroy all Software?


When Gary Bernhardt executes a shell command from Destroy All Software, for example this:

:!ls

The command looks as if it had "spawn a new shell" - it takes the whole window, with its own theme. You can see it around 00:36 in the "One-minute demo video" of his homepage.

When I do the same in my macvim, the result is not the same; the command runs in the "bottom of the screen", inside a "small buffer" of around 1/3rd of the screen size, and conserving the theme I use in vim. Inconveniently, it also prints escape codes literally, instead using color codes (this particular bit has been asked in Stack Overflow before, but I want to know how Gary does his stuff).

What I have tried:

  1. I have watched the 3 episodes Gary has about vim configuration: The .vimrc, Some Vim Tips and File Navigation in Vim. Sadly, none of them mention doing something special or installing a plugin relevant to the way the shell script is done.
  2. I have studied Gary's .vimrc and .vim folder. If the relevant configuration option is there somewhere, I could not find it.

Hence, my question: how do I get macvim to display shell commands as in DAS?

Spec: I'm using MacVim, MacOsx 10.8.1, iterm2, zsh and ohmyzsh.


Solution

  • Well, I think I can answer myself now.

    Macvim does the console thing very differently in gui mode than in console mode.

    In console mode, it works as in DAS. Full screen, color codes.

    In gui mode, it ... well, it basically sucks. Bottom of the screen, no color codes.

    So, if you want nice shell outputs in macvim, use the non-gui mode. At least for now. (I have not investigated plugins like Conque)