Forge Home


Install vim and manage user configuration files


4,144 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.1.2 (latest)
  • 0.1.1
  • 0.1.0 (deleted)
released May 24th 2019
This version is compatible with:
  • Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
  • Puppet >= 4.10.0 < 7.0.0

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'brwyatt-vim', '0.1.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add brwyatt-vim
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install brwyatt-vim --version 0.1.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



brwyatt/vim — version 0.1.2 May 24th 2019


Build Status

GitHub license GitHub issues GitHub forks GitHub stars

Puppet Forge Puppet Forge - downloads Puppet Forge - scores

Install vim and manage user configuration files

Table of Contents

  1. Description
  2. Setup - The basics of getting started with vim
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.
  5. Development - Guide for contributing to the module


This module installs vim and manages vim user configuration files. Currently, this module allows managing of user .vimrc, vim plugins, and Pathogen bundles.


What vim affects

When this module is used to manage a user's vim config, it will manage the entire .vim directory for that user, and remove unmannaged files.

Setup Requirements

This module currently only officially supports Ubuntu, but likely will work on most other systems, particularly of a Debian flavor. If using on non-Debian based distros, it may be necessary to manually provide the vim package name. Additionally, only Git-based repos are officially supported. Others may work, but only Git has been tested.

This module additionally has the following dependencies:

  • lwf/remote_file: used when Vim::Plugin is provided an http/https URL for the source parameter.
  • puppetlabs/git: used to install Pathogen bundles from git (if using a Git repo)
  • puppetlabs/stdlib: default
  • puppetlabs/vcsrepo: used for installing/managing Pathogen bundles. Might be able to support other repo types, but only Git has been tested.

Beginning with vim

Install the module with:

puppet module install brwyatt-vim


Install vim

To install vim, include the module into your manifests:

include ::vim

All Vim module resources are realized in Vim::Configure, so may be included as virtual resources in global user configs, and will only be realized on systems that also include the main Vim class or Vim::Configure.

Managing user config

@vim::config { '/home/brwyatt':
  ensure => present,
  owner  => 'brwyatt',

This will manage the user's .vimrc and setup the user's .vim directory, including directories for plugins and bundles.

Installing plugins

@vim::plugin { 'pathogen':
  owner    => 'brwyatt',
  autoload => true,
  source   =>
  vim_dir  => '/home/brwyatt/.vim',

This installs the plugin at the indicated source to the user's .vim/plugins directory, and adds a symlink in .vim/autoload to it. The file will be called pathogen.vim and is based on this resource's name, and can be overridden by the plugin_name parameter.

Installing bundles

@vim::bundle { 'puppet':
  ensure   => present,
  owner    => 'brwyatt',
  repo     => '',
  revision => 'master',
  vim_dir  => '/home/brwyatt/.vim',

This will install the bundle from the indicated Git repository into the user's .vim/bundle directory as "puppet", based on the resource's name. This name can be overridden with the bundle_name parameter.


Currently, this module can only install on Debian-based systems and has not been tested on distributions other than Ubuntu 16.04 and 18.04. It may or may not work on other Debian-based distributions, but makes no claims regarding such.


Feel free to file issues in the GitHub issue tracker for the repository, or submit Pull Requests.

I may not have much time to work on (or test) this myself, so help to expand current functionality (especially to make it work for more people) is greatly appreciated and encouraged.


The list of contributors can be found at: