これまでRailsの開発に使っていたテキストエディタは「Atom」でした。
【WordPress】Facebook ogpとTwitter Cardをプラグイン無しで実装する
Macで快適に利用して週末プログラミングに勤しんでいた訳でしたが、先日購入した鬼スペックのデスクトップPC(Windows)にAtomを意気揚々とインストールしようとしたところ…
インストールできない…
という訳で、MacでもWindowsでも共通の設定内容で使えるエディタに乗り換えようと決意を固めて1ヶ月が経過し、ついにこの記事を僕は見つけました。
外部リンク:Macを購入したら絶対に導入したい!私が3年間で厳選した超オススメアプリ10選!
上の記事を見て気付いたら朝の4時まで設定周りを弄くり回していたので、忘備録として設定内容をまとめておきます。
なぜVimなのか(哲学)
元々viエディタの存在は知っていましたが、Vim(viコマンド)は”マジで意味不明”で一生使うまいと最初思っていました。
ですが、その気持ちはWindows PCを購入して崩れます。
WindowsでRailsの開発するなら、仮想環境に適当なOS入れてやるしか無いな…と思っていた矢先のAtomインストール失敗により、目が覚めました。
「Sublime使うくらいなら、Vimでよくね?」
※SublimeをDisってる訳ではありません。
元々Sublime textからAptana Studio(Eclipse)のようなIDE(統合開発環境)も試しましたが、Railsデバッグ周りの弱さと重さに耐え切れず、Atomに乗り換えたのですが今回のインストール出来ない問題が発生…。
ですが、Vimをコマンドプロンプト(Windows)やターミナル(Mac)で起動すれば何も問題ないことに気付いてしまいました。
お遊びでプログラミングするだけなのに、RubyMineを買うのは流石に社会人と言えどお金の使い方を間違えている気がした(使いこなせるレベルに全く達していない)ので、取り敢えずMac用のVim「MacVim」を導入しました。
「MacVim」でRailsの開発を行う際の.vimrc,.gvimrcファイルの設定内容とは
素のVimでRailsを書くのは数分で限界が来そうなので、ネットから落ちている情報をかき集めてVimの設定ファイルである.vimrcと.gvimrcを作成しました。
.vimrcにGUIに関係しない設定内容を記述
"--------------------
"" 基本的な設定
"--------------------
"新しい行のインデントを現在行と同じにする
set autoindent
"バックアップファイルのディレクトリを指定する
set backupdir=$HOME/vimbackup
"クリップボードをWindowsと連携する
set clipboard=unnamed
"vi互換をオフする
set nocompatible
"スワップファイル用のディレクトリを指定する
set directory=$HOME/vimbackup
"タブの代わりに空白文字を指定する
set expandtab
"変更中のファイルでも、保存しないで他のファイルを表示する
set hidden
"インクリメンタルサーチを行う
set incsearch
"行番号を表示する
set number
"閉括弧が入力された時、対応する括弧を強調する
set showmatch
" Vimが挿入するインデントの幅
set shiftwidth=2
"新しい行を作った時に高度な自動インデントを行う
set smarttab
"grep検索を設定する
set grepformat=%f:%l:%m,%f:%l%m,%f\ \ %l%m,%f
set grepprg=grep\ -nh
"検索結果のハイライトをEsc連打でクリアする
nnoremap <ESC><ESC> :nohlsearch<CR>
" カーソルが何行目の何列目に置かれているかを表示する
set ruler
" コマンドラインに使われる画面上の行数
set cmdheight=2
" ステータス行に現在のgitブランチを表示する
set statusline+=%{fugitive#statusline()}
" ウインドウのタイトルバーにファイルのパス情報等を表示する
set title
" コマンドラインモードで<Tab>キーによるファイル名補完を有効にする
set wildmenu
" 入力中のコマンドを表示する
set showcmd
" 小文字のみで検索したときに大文字小文字を無視する
set smartcase
" 検索ワードの最初の文字を入力した時点で検索を開始する
set incsearch
" タブ文字の表示幅
set tabstop=2
" カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,<,>,[,]
" 構文毎に文字色を変化させる
syntax on
" カラースキーマの指定
colorscheme desert
" 行番号の色
highlight LineNr ctermfg=darkyellow
" ctrl-eでプロジェクトツリー呼び出し
nnoremap <silent><C-e> :NERDTreeToggle<CR>
""""""""""""""""""""""""""""""
" プラグインのセットアップ
" """"""""""""""""""""""""""""""
if has('vim_starting')
set nocompatible " Be iMproved
" Required:
set runtimepath+=~/.vim/bundle/neobundle.vim/
endif
" Required:
call neobundle#begin(expand('~/.vim/bundle/'))
" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'scrooloose/nerdtree'
NeoBundle 'scrooloose/syntastic'
NeoBundle 'tpope/vim-rails'
NeoBundle 'dbext.vim'
NeoBundle 'AutoClose'
"補完&スニペット"
NeoBundle 'Shougo/neocomplcache.vim'
NeoBundle 'Shougo/neosnippet'
NeoBundle 'marcus/rsense'
" ドキュメント参照
NeoBundle 'thinca/vim-ref'
NeoBundle 'yuku-t/vim-ref-ri'
" メソッド定義元へのジャンプ
NeoBundle 'szw/vim-tags'
" 自動で閉じる
NeoBundle 'tpope/vim-endwise'
" Gitを便利に使う
NeoBundle 'tpope/vim-fugitive'
" grep検索の実行後にQuickFix Listを表示する
autocmd QuickFixCmdPost *grep* cwindow
" ステータス行に現在のgitブランチを表示する
set statusline+=%{fugitive#statusline()}
" コメントON/OFFを手軽に実行
NeoBundle 'tomtom/tcomment_vim'
" コメントON/OFFを手軽に実行
NeoBundle 'tomtom/tcomment_vim'
" ログファイルを色づけしてくれる
NeoBundle 'vim-scripts/AnsiEsc.vim'
" 行末の半角スペースを可視化
NeoBundle 'bronson/vim-trailing-whitespace'
NeoBundleLazy "scrooloose/nerdtree", {
\ "autoload" : { "commands": ["NERDTreeToggle"] }}
if ! empty(neobundle#get("nerdtree"))
nn <Leader>N :NERDTreeToggle<CR>
endif
call neobundle#end()
" Required:
filetype plugin indent on
" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
""""""""""""""""""""""""""""""
.gvimrcにGUIに関する設定内容を記述
"フォント設定 set guifontwide=Osaka:h12 set guifont=Osaka-Mono:h14 "全角スペースを視覚化 highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=#666666 au BufNewFile,BufRead * match ZenkakuSpace / / "常にタブを表示 set showtabline=2 "透明度を変更 set transparency=3 map gw :macaction selectNextWindow: map gW :macaction selectPreviousWindow:
以下は上記設定内容を反映した際の見た目です。(Macでiterm2にて起動。)

※なぜかiTerm2のバグでフルスクリーンにならない…。
実際の使い心地はこれからviコマンドを覚えつつ追記するとして、エディタの環境整備を終えた達成感で今日はぐっすり眠れそうです。
# これからWindowsにも同様にVim入れます(白目)
# 仮想環境にCentOSか何か入れてそっちでやります。
