HappyGoLucky

Web系サーバーサイド寄りの自動化大好きエンジニアの徒然なるブログ

mac で vim で ruby な環境構築メモ

いい加減、macvim環境を整理しようと思って手を出した。 いつか清書してQiitaにUpするかもしれない。 (N番煎じだと思うのでモチベーションはそんなにない)

macで、と書いたけど、なるべく Linux でも動くスクリプトを意識している。

環境

メモ

基本は Qiitaのこの記事を参照。とても良い記事。

qiita.com

ただし、vimは、macvim-kaoriya を利用しているので手順が違う。

というか、そもそも Mac 向けの手順ではなく、Linux向けの記事

macvim-kaoriya https://github.com/splhack/macvim-kaoriya

vim-plugin

↑の記事を参考にもろもろインストール。 自分の設定をGitHubに晒しているけど、ぐちゃぐちゃで恥ずかしい状態。

Lua

luabrewで入れたので、vimrcでluaのパスを指定しないとだめ。 .vimrcの適当なところに、

if has("mac")
  " lua is installed by homebrew
  set luadll=/usr/local/Cellar/lua/5.2.4_1/lib/liblua.dylib
end

こんな感じで書いておく。

参考 Readme · splhack/macvim-kaoriya Wiki · GitHub

RSense

RSenseのインストール、設定はこんな感じのスクリプトを実行

brew list rsense 1>/dev/null 2>&1 || brew install rsense
ruby /usr/local/Cellar/rsense/0.3/libexec/etc/config.rb > ~/.rsense

/usr/local/Cellar/rsense/0.3/ を、もっと汎用的に書けないものか悩み中。

ctags

Xcodeに入ってるみたいだけど、使いたいのは別のctagsなので設定が必要。

$ ctags -R
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ctags: illegal option -- R
usage: ctags [-BFadtuwvx] [-f tagsfile] file ...

alias を設定すれば済む話だけど、何となく、Native Mac な設定を残しておきたい性分なのでしてない。

実践vimのアドバイスにしたがって、gitのhookを利用して、commit時にctagsを実行するように。 git hookのテンプレートを自分で作れるらしい。 下記、記事を参照して、~/.git_template/hooks を作っておく。

qiita.com

#!/bin/bash
if [[ $(uname) = "Darwin" ]]; then
    ctags_bin=$(brew --prefix)/bin/ctags
else
    ctags_bin=ctags
fi
[ -x ${ctags_bin} ] && ${ctags_bin} --tag-relative -R -f .git/tags

ctagsの対象ファイルを絞るとか、いろいろ調整は必要と思うけどとりあえずこれで、 <C-]> で、メソッドの定義元にジャンプできるようになった。

↑でできてるので、 vim-tags プラグインは入れてない。

Rubocup

gem install rubocup
NeoBundle 'https://github.com/scrooloose/syntastic.git'
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': ['ruby'] }
let g:syntastic_ruby_checkers = ['rubocop']

Reference

Dashに慣れた方が、他のドキュメントも読めるし便利だろうと思いつつ値段に尻込みしている最中。 vimで読むのが便利ならDashじゃなくても良いんじゃないかなぁ。。。うーん。

gem install rubocop refe2 bitclust-dev
which rbenv && rbenv rehash
bitclust setup

rubyはrbenvでインストールしているので、ref_refe_cmdのパスを変えてあげる。

NeoBundle 'thinca/vim-ref'
NeoBundle 'yuku-t/vim-ref-ri'
let g:ref_refe_cmd = $HOME.'/.rbenv/shims/refe'

これで、K でドキュメントが見れる。 <CR><C-I><C-o> で移動すると良い感じ。

bundlerでインストールした場合(一部未解決)

gemをbundlerでインストールすると、ドキュメントが付属しない。 なので、別途インストールする。

bundle install
bundle exec gem rdoc --all

こうすれば、 :Ref ri XX でドキュメントを見れる。

が、 bundle install --path vendor/bundle のように、 別のディレクトリにインストールすると参照できない。

パスの問題なんだろうなー、と思いつつ解決できていない。