2011년 6월 15일 수요일

HomeBrew로 Vim 설치하기

갑자기 Emacs가 얼어버리는 증상이 잦아져서 (불쌍한 고물맥북 ㅠㅠ) 터미널에서 vim을 쓰려고 HomeBrew를 이용해 vim7.3을 설치하려고 찾아봤다.
brew search vim
그런데 정작 vim은 없고 macvim만 보인다. MacVim은 이미 설치되어 있지만 잘 안쓰는데 -_-;;;

뭔가의 이유로 공식적으로 아직 포뮬라가 안올라와 있나보다.

이유야 어쨌든 HomeBrew로 설치를 못 하는 건 아니다. 포뮬라를 직접 지정하면 된다. 구글링을 통해 다음 페이지를 찾았다.

https://gist.github.com/721952/0b2428d75052548b90e9b1d28553f4c9f56f8a0a

포뮬러 소스가 올라와있다. 소스 우측 상단의 raw 버튼을 눌러서 나오는 페이지의 URL을 brew install 다음에 써 주면 된다. 현재 시점에서 정확한 명령은 다음과 같다.
brew install https://raw.github.com/gist/721952/35c801d0f446af8e20c4661228a2bc0634ca8c1d/vim.rb
이 코드가 업데이트되면 url이 바뀔 수도 있다. 접속이 안된다고 여기에 따지면 곤란하다. -_-;;

이전 MacPort로 설치했던 때와 비슷하게 이번에는 패치를 무지막지하게 다운받더라. 하여간 빌드도 성공되고 vim --version으로 버전 확인도 OK.



위 포뮬라로 설치한 vim에는 python 지원 등의 기능이 빠져있다. 그래서 해당 포뮬라를 다운 받아서 일부 옵션을 추가했다.

우선 기존 vim을 지워야 새로 설치할 수 있다. 그냥 brew uninstall vim 하면 지워질 줄 알았더니 no such keg 오류가 발생한다. 그래서 다음 커맨드로 강제로 삭제했다.
brew remove -force vim

그리고 다음 내용을 vim.rb라는 파일에 쓰자.
require 'formula'

class Vim <Formula
  url 'ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2'
  homepage 'http://www.vim.org/'
  md5 '5b9510a17074e2b37d8bb38ae09edbf2'

  def patchlevel; 69 end
  def features; %w(tiny small normal big huge) end

  def options
    features.map {|f| ["--#{f}", "Configure with --with-feature-#{f}"] }
  end

  def patches
    patches = (1..patchlevel).map {|i| sprintf('ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.%03d', i) }
    {:p0 => patches}
  end

  def install
    feature = features.find {|f| ARGV.include? "--#{f}" } || "normal"
    system "./configure",
      "--with-features=huge",
      "--enable-rubyinterp",
      "--enable-pythoninterp",
      "--enable-cscope",
      "--with-python-config-dir=/usr/local/Cellar/python/2.7/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config",
      "--disable-gui",
      "--without-x",
      "--disable-gpm",
      "--disable-nls",
      "--with-tlib=ncurses",
      "--enable-multibyte",
      "--with-feature-#{feature}",
      "--prefix=#{prefix}",
      "--mandir=#{man}"
    system "make install"
  end
end
잘 보면 configure 시 brew로 python2.7을 설치하면 생성되는 디렉토리 정보들이 기록되어 있다. 만약 다른 것, 예를 들어 Mac OS X에 기본적으로 설치되어 있는 python을 이용할 것이라면 그 경로로 바꿔줘야 할 것이다.

이 포뮬라를 이용해 설치한다. (아래 명령은 현재 디렉토리에 vim.rb 파일이 있다고 가정한 것이다)
brew install ./vim.rb

ruby나 lua 등의 지원에는 경로 정보가 없는데 동작 여부는 확인되지 않았다. 동작 안한다면 알아서 옵션을 추가해 줘야 할 것이다. 더 많은 지원이 필요하다면 그냥 정식 vim이 올라오길 기다려야 할지도 모르겠다. -_-;;

추신) 여기서 python 지원 기능이란, vim 스크립트에서 python을 사용할 수 있게 하는 것을 의미하는 것이다. python 코딩 자체와는 관계가 없다.

댓글 없음 :