We know we can edit files via scp in Vim as we’ve seen in: Vim SSH.

$ vim scp://user@host//path/to/file/file.extension

Editing files on vagrant virtual machine is a little bit harder to achieve.

We can ssh into vagrant (along with option vagrant ssh) after adding our ssh public key:

$ ssh -i ~/.ssh/id_rsa.pub -p 2222 vagrant@localhost

More info about this: Add SSH Public Key to Vagrant

However we can’t add these flags to scp. So what is the solution then?

The solution is adding ssh config file as we’ve seen in SSH Config:

Host vagrantlocal
  HostName localhost
  Port 2222
  User vagrant
  IdentityFile ~/.ssh/id_rsa.pub
  PasswordAuthentication no

After that we can remotely edit files:

$ vim scp://vagrantlocal//path/to/file/file.extension

All done!