Skip to content

Instantly share code, notes, and snippets.

@dtuite
Last active December 11, 2015 11:48
Show Gist options
  • Save dtuite/4595856 to your computer and use it in GitHub Desktop.
Save dtuite/4595856 to your computer and use it in GitHub Desktop.
Homebrew formula for installing Vim

Vim Homebrew Formula

  • Includes Python and Ruby support.
  • Uses system Ruby rather than current shell Ruby

Installation Instructions

  1. Find the Vim version number you wish to install. You can either use the Vim patches readme or brew update && brew outdated.
  2. git clone https://gist.github.com/4595856.git
  3. Change the installation version number in two places in the script.
  4. brew install ./4595856/vim.rb
require 'formula'
class Vim < Formula
homepage 'http://www.vim.org/'
# Get stable versions from hg repo instead of downloading an increasing
# number of separate patches.
url 'https://vim.googlecode.com/hg/', :tag => 'v7-4-873'
version '7.4.873'
head 'https://vim.googlecode.com/hg/'
env :std # To find interpreters
LANGUAGES = %w(lua mzscheme perl python python3 tcl ruby)
DEFAULT_LANGUAGES = %w(ruby python)
LANGUAGES.each do |language|
option "with-#{language}", "Build vim with #{language} support"
option "without-#{language}", "Build vim without #{language} support"
end
def install
ENV['LUA_PREFIX'] = HOMEBREW_PREFIX
language_opts = LANGUAGES.map do |language|
if DEFAULT_LANGUAGES.include? language and !build.include? "without-#{language}"
"--enable-#{language}interp"
elsif build.include? "with-#{language}"
"--enable-#{language}interp"
end
end.compact
# Why are we specifying HOMEBREW_PREFIX as the prefix?
#
# To make vim look for the system vimscript files in the
# right place, we need to tell it about HOMEBREW_PREFIX.
# The actual install location will still be in the Cellar.
#
# This way, user can create /usr/local/share/vim/vimrc
# or /usr/local/share/vim/vimfiles and they won't end up
# in the Cellar, and be removed when vim is upgraded.
system "./configure", "--prefix=#{HOMEBREW_PREFIX}",
"--mandir=#{man}",
"--enable-gui=no",
"--without-x",
"--disable-nls",
"--enable-multibyte",
"--with-tlib=ncurses",
"--enable-cscope",
"--with-features=huge",
# Make sure it compiles with the system ruby rather than the current RVM ruby.
# http://stackoverflow.com/a/6114582/574190
"--with-ruby-command=/usr/bin/ruby",
*language_opts
system "make"
# Even though we specified HOMEBREW_PREFIX for configure,
# we still want to install it in the Cellar location.
system "make", "install", "prefix=#{prefix}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment