-
-
Save uasi/721952 to your computer and use it in GitHub Desktop.
require 'formula' | |
class Vim < Formula | |
homepage 'http://www.vim.org/' | |
url 'ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2' | |
head 'https://vim.googlecode.com/hg/' | |
sha256 '5c5d5d6e07f1bbc49b6fe3906ff8a7e39b049928b68195b38e3e3d347100221d' | |
version '7.3.682' | |
def features; %w(tiny small normal big huge) end | |
def interp; %w(lua mzscheme perl python python3 tcl ruby) end | |
def options | |
[ | |
["--with-features=TYPE", "tiny, small, normal, big or huge (default: normal)"], | |
["--enable-interp=NAME,...", "lua, mzscheme, perl, python, python3, tcl and/or ruby"] | |
] | |
end | |
def patches | |
patch_level = version.to_s.split('.').last.to_i | |
{'p0' => (1..patch_level).map { |i| 'ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.%03d' % i }} | |
end | |
def install | |
def opt_val(opt) | |
opt.sub(/.*?=(.*)$/, "\\1") rescue nil | |
end | |
opts = [] | |
feature = opt_val(ARGV.find {|s| s =~ /^--with-features=/ }) || "normal" | |
# For compatibility and convenience {{{ | |
feature_shorthand = features.find {|f| ARGV.include? "--#{f}" } | |
feature = feature_shorthand if feature_shorthand | |
# }}} | |
opts << "--with-features=#{feature}" | |
interps = opt_val(ARGV.find {|s| s =~ /^--enable-interp=/ }) || "" | |
interps = interps.split(/,/) | |
# For compatibility and convenience {{{ | |
interp.each do |i| | |
if ARGV.include? "--#{i}" | |
interps << i | |
end | |
end | |
# }}} | |
interps.uniq! | |
interps.each do |i| | |
opts << "--enable-#{i}interp=yes" | |
opts << "--with-lua-prefix=/usr/local" if i == "lua" | |
end | |
system "./configure", | |
"--disable-gui", | |
"--without-x", | |
"--disable-gpm", | |
"--disable-nls", | |
"--with-tlib=ncurses", | |
"--enable-multibyte", | |
"--prefix=#{prefix}", | |
"--mandir=#{man}", | |
*opts | |
system "make install" | |
end | |
end |
Maybe I could suggest that you submit this to the homebrew-alt repo?
Thank you for updating ;)
7.3.146 is released ;)
7.3.144 crash with ":python help(dir)"
7.3.145 (after 7.3.144) can't build with Python dynamically loading
7.3.146 can assign to dict member with invalid name
Can't you make the patchlevel def read from the version tag? I'm not know with Ruby, so I can't help out. But that would be much easier, than updating the same info two places :)
I've tweaked my fork and updated it: https://gist.github.com/896531
161 is relased as well.
Thanks, merged your work :)
Maybe I could suggest that you submit this to the homebrew-alt repo?
homebrew(-alt) seems to prefer a formula that comes with a recommended configuration.
This one is bit too configurable for them, I think.
Any suggestions on how to make this compile with a Ruby version from RVM? I'm a bit stuck atm.
@MindTooth I've never been able to get that to work. I simply turn off rvm temporary (rvm use system
), then build vim, then turn rvm back on.
If it makes you feel any better, Vim simply ignores my Homebrew-installed Python (even though it's first in my $PATH
). So it's not just Ruby.
Thank you for the tip. It did the trick!
I hope that we can provide something for the future at a later time ;) Will look into it more whenever I have the time and the knowledge to do so.
7.3.170 is released ;)
Thanks :)
Added head URL, which had been removed accidentally.
7.3.177 is released ;)
So has anyone been able to get this to work with hombrew-installed Python? Need to find a solution here, since I'd prefer to use Python 3.
And 7.3.189 is released ;)
@asenchi: http://stackoverflow.com/questions/2236171/compiling-gvim-with-python-3-support/2237572#2237572
Does that answer your question?
Not necessarily. Ultimately I want to compile vim with support for my Homebrew installed Python version and not the default Python shipped with Mac OS X. (Whether 2 or 3 isn't that big a deal, though I was hoping to port existing python plugins to 3).
http://forums.freebsd.org/showthread.php?t=22962
What I found out now is, that for compiling vim with Python3-support, the python header files are needed. For Ubuntu, they are in the package python-dev, but there is no python-dev in the ports. After using google, it seems that a file named python.h is needed, but there is no python.h on my system and I don't know where to get it.
Seems like you need to the header file. Or am I mistaken?
Sorry, I am not being clear, for example, using the formula above, if I brew install with python, then add:
python <<EOF
import sys
print(sys.version)
EOF
to my .vimrc, it says I am using the Python shipped with Snow Leopard.
I've hardcoded the following into the formula and it still doesn't work:
"--enable-pythoninterp=yes",
"--with-python-config-dir=/usr/local/lib/python2.7/config",
Any ideas how to get this forumla to see it? I am going to keep hacking around, but thus far I have yet to find a solution.
@asenchi I was having the same issue. See if this helps you: http://stackoverflow.com/questions/6164008/compiling-vim-with-python3-installed-via-homebrew-support
Just a note for anyone using this now - there seems to be a problem with one of the patches: https://groups.google.com/group/vim_dev/msg/4ecb0d64e2c0dc5d
I just removed the patch method for now to get it installed.
Thanks for writing this! The system Vim is missing a lot of stuff I depend on.
Fyi: I've been using a variant of this for a few months with good success: https://gist.github.com/1027452.
The only significant difference is that I leverage Mercurial in order to avoid downloading all the patches separately each time. In order to update it, I simply edit the :revision
and version
numbers.
@telemachus Thanks, that will reduce build time and server load!
(As a side note, I've chosen not to use Mercurial to fetch a specific version of Vim because:
- it is possible to skip specific (maybe flawed) patches by modifying the patches method,
- you can always use
--HEAD
to fetch the most recent revision with Mercurial, likebrew install vim --HEAD
, and - I love a coffee break watching growing 300+ progress bars ;-)
I got the error:
/usr/bin/patch: **** Can't open patch file 065-homebrew.diff : No such file or directory
Error: Failure while executing: /usr/bin/patch -f -p0 -i 065-homebrew.diff
I made a slight modification to the fork by telemachus to make using the homebrew python easy https://gist.github.com/2402135
when you use --use-brew-python flag it will add the option "--with-python-config-dir=/usr/local/lib/python2.7/config"
This is just for my understanding. Why not just use MacVim? I run MacVim on OS X in my terminal with a simple alias, but also get the option to run it as a full windowed app.
in my .bashrc
alias vim="mvim -v"
alias vi="mvim -v"
Is there something I'm missing about MacVim vs Vim?
Thanks.
Vim is updated more often than MacVim from my understanding at least.
@uasi ここの version
、一旦 to_s
しないとエラー出るようになってるっぽいですよ。
patch_level = version.split('.').last.to_i
latest version of brew does not allow split directly, use to_s like in this: https://gist.github.com/3423922
I have problem installing vim with anaconda Python. All plugin with Python code are not working. Is there a way to circumvent this problem ?
Updated, thanks.