RobotVim is a Ruby gem that allows you to invoke Vim from inside of Ruby programs. It was designed to allow Vim developers to TDD/BDD their Vim plugins and scripts.
To install RobotVim run gem install robot-vim or clone this reposity and run rake install
RobotVim is developed with Vim 7.3, Ruby 1.9.2, and bundler.
Create an instance that will use your user's default Vim robot = RobotVim::Runner.new()
Or create an instance with a specific Vim robot = RobotVim::Runner.new(:vim => "/bin/vim")
Commands are passed in as a string with one command per line.
The input file can be specified as a path to an existing input file, or as a string which RobotVim will turn into an short lived file backed buffer.
commands = <<-COMMANDS RunSomeCoolCommand SomeOtherCoolCommand COMMANDS buffer_text = robot.run(:input_file => "some/file.txt", :commands => commands) input = <<-CONTENT This text will be used as the contents of my input file CONTENT buffer_text = robot.run(:input_file => input, :commands => commands)
Use your preferred Ruby testing library to make assertions about the buffer text string returned by RobotVim::Runner#run
spec/integration_spec.rb contains examples of asserting with Rspec
- automatically save buffer to an output file after running the last command(done)
- automatically close Vim after running the last command(done)
- take a string for input and write out a temporary file that Vim will run against(done)
- figure out if there is a way to specify a .vimrc file without disabling the normal Vim initialization process
RobotVim is developed by Matt Margolis | mrmargolis | email@example.com