CentOS5 のvimでRubyのオムニ補完を使う
オムニ補完は↑のような補完機能。RubyやRails開発で使えます。
http://vim-ruby.rubyforge.org/を突っ込めば使えますが、CentOS環境のvimはrubyinterpが無効になっているのでパッケージを入れ直す必要があります。手順は以下。
1. vimのrpmパッケージを作る/入れ直す
2. vim/rubyを導入
3. vimの設定
vimでrubyinterpが有効かは:versionコマンドで確認できます。(+rubyで有効)
vimのrpmを作る
srpmからrpmファイルを作ります。まずは必要なパッケージを導入。
% sudo yum grouplist % sudo yum groupinstall "Development Tools" % sudo yum groupinstall "Development Libraries" % sudo yum install rpm-build % sudo yum install yum-utils % sudo yum install gcc python-devel libtermcap-devel libacl-devel gpm-devel autoconf libselinux-devel gtk2-devel libSM-devel libXt-devel libXpm-devel % sudo yum install ruby ruby-devel
SRPMを取得するために、/etc/yum.repos.d/CentOS-Source.repo を作成します。内容は以下。
# CentOS-Source.repo [base-source] name=CentOS-$releasever - Base Source baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/SRPMS/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 #released updates [updates-source] name=CentOS-$releasever - Updates Source baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/SRPMS/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 #packages used/produced in the build but not released [addons-source] name=CentOS-$releasever - Addons Source baseurl=http://ftp.riken.jp/Linux/centos/$releasever/addons/SRPMS/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 #additional packages that may be useful [extras-source] name=CentOS-$releasever - Extras Source baseurl=http://ftp.riken.jp/Linux/centos/$releasever/extras/SRPMS/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 #additional packages that extend functionality of existing packages [centosplus-source] name=CentOS-$releasever - Plus Source baseurl=http://ftp.riken.jp/Linux/centos/$releasever/centosplus/SRPMS/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 #contrib - packages by Centos Users [contrib-source] name=CentOS-$releasever - Contrib Source baseurl=http://ftp.riken.jp/Linux/centos/$releasever/contrib/SRPMS/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
CentOS-Base.repoを書き換えたものです。
ビルド用のディレクトリを作成します。
% mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS} % echo "%_topdir $HOME/rpm" >> ~/.rpmmacros
srpmを取得して展開します。
% yumdownloader --enablerepo=base-source --source vim % rpm -ivh vim-7.0.109-3.el5.3.src.rpm % rm -f rpm -ivh vim-7.0.109-3.el5.3.src.rpm
(略) export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2" export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2" %configure --with-features=huge --enable-pythoninterp --enable-perlinterp \ --disable-tclinterp --with-x=yes \ --enable-xim --enable-multibyte \ --enable-gtk2-check --enable-gui=gtk2 \ --with-compiledby="<bugzilla@redhat.com>" --enable-cscope \ --with-modified-by="<bugzilla@redhat.com>" \ --enable-rubyinterp \ # 追加 %if "%{withnetbeans}" == "1" --enable-netbeans \ %else --disable-netbeans \ %endif make cp vim gvim make clean %configure --prefix=/usr --with-features=huge --enable-pythoninterp \ --enable-perlinterp --disable-tclinterp --with-x=no \ --enable-gui=no --exec-prefix=/usr --enable-multibyte \ --enable-cscope --with-modified-by="<bugzilla@redhat.com>" \ --with-compiledby="<bugzilla@redhat.com>" \ --enable-rubyinterp \ # 追加 %if "%{withnetbeans}" == "1" --enable-netbeans \ %else --disable-netbeans \ %endif (略) %changelog # 追加↓ * Mon Jun 02 2008 hayori <hayori02@gmail.com> 7.0.109-3.3ruby - enable-rubyinterp (略)
ビルドします。
% rpmbuild -ba --target i686 --define 'dist .el5' ~/rpm/SPECS/vim.spec
以上でrpmファイルが作成されるはず。
~/rpm/RPMS/i686 に作成されたrpmの中から必要な物をインストールします。
% sudo rpm -Uvh --force vim-common-7.0.109-3.el5.3.i686.rpm vim-minimal-7.0.109-3.el5.3.i686.rpm vim-enhanced-7.0.109-3.el5.3.i686.rpm
vim/rubyを導入
RubyGemsで入るので簡単。
% sudo gem install vim-ruby
以下のコマンドが有効になるので実行します。全ユーザに適用するか自分オンリーにするかなど聞かれるかもですが適当に。
% vim-ruby-install.rb