# Vagrant contribution layer for Spacemacs
![vagrant](img/vagrant.png)
**Table of Contents**
- [Vagrant contribution layer for Spacemacs](#vagrant-contribution-layer-for-spacemacs)
- [Description](#description)
- [Install](#install)
- [Layer](#layer)
- [Vagrant](#vagrant)
- [Testing](#testing)
- [Keybindings](#keybindings)
## Description
This layer adds support for working with Vagrant using [vagrant.el][] and
[vagrant-tramp][].
Features:
- manage boxes (under the SPC V prefix)
- remote editing on Vagrant boxes via Tramp
## Install
### Layer
To use this contribution add it to your `~/.spacemacs`
```elisp
(setq-default dotspacemacs-configuration-layers '(ruby vagrant))
```
**Note** Since vagrant files are written in `ruby` it is recommended
to install the `ruby` layer as well.
### Vagrant
Follow the [Installing Vagrant][] and [Getting Started][] guides in
Vagrant's documentation.
### Testing
If you'd like to test this layer out in a simple way (for example to
make sure you have Vagrant configured correctly) there is a [Vagrantfile][]
in this directory.
## Keybindings
Key Binding | Description
-------------------|-----------------------------------------------------------------------------------------------
SPC V D | destroy a box
SPC V e | edit the `Vagrantfile`
SPC V H | halt (shut down) a box
SPC V p | (re)provision a box that is already up
SPC V r | resume a suspended box (you can also use `SPC V V` for this)
SPC V s | view the status of running boxes in the current project
SPC V S | suspend a box
SPC V t | start a `vagrant-tramp-term` session - after start, edit files at `/vagrant:box_name:filename`
SPC V V | bring up a Vagrant box
[vagrant.el]: https://github.com/ottbot/vagrant.el
[vagrant-tramp]: https://github.com/dougm/vagrant-tramp
[Installing Vagrant]: http://docs.vagrantup.com/v2/installation/index.html
[Getting Started]: http://docs.vagrantup.com/v2/getting-started/index.html
[Vagrantfile]: Vagrantfile