Posts tagged: Ruby on Rails

MacVimでRailsの環境を作る 〜neocomplcacheインストール〜

いろいろなキーワードの補完リストを自動的に表示してくれる
neocomplcache
というvimスクリプトを入れました。
autocomplpopみたいなスクリプトです。

主な機能

  • シンタックス補完
  • 辞書ファイルの補完
  • タグファイルの補完
  • ファイル名の補完
  • オムニ補完
  • スニペット補完

これだけでも「おぉ!」と思いましたが、同じような機能補完はautocomplpopでもできるんですよね。
ただ、以下のような理由からneocomplcacheを選択しました。

  • カスタマイズ項目が豊富
  • プラグインで拡張が可能
  • SnipMateのトリガーを補完リストに表示できる
  • autocomplpopでもSnipMateのトリガーを補完リストに表示できるが、パッチを当てる必要があったり、対象が大文字の場合のみだったりと使いにくい

インストール

下のurlよりダウンロードして、『.vim』フォルダにインストール。
shougo’s neocomplcache at master – github

vimrcの設定

こんな感じです。

" neocomplcache
let g:NeoComplCache_EnableAtStartup = 1
" 大文字小文字を区別する
let g:NeoComplCache_SmartCase = 1
" キャメルケース補完を有効にする
let g:NeoComplCache_EnableCamelCaseCompletion = 1
" アンダーバー補完を有効にする
let g:NeoComplCache_EnableUnderbarCompletion = 1
" シンタックスファイルの補完対象キーワードとする最小の長さ
let g:NeoComplCache_MinSyntaxLength = 3
" プラグイン毎の補完関数を呼び出す文字数
let g:NeoComplCache_PluginCompletionLength = {
  \ 'keyword_complete'  : 2,
  \ 'syntax_complete'   : 2
  \ }
" ファイルタイプ毎の辞書ファイルの場所
let g:NeoComplCache_DictionaryFileTypeLists = {
            \ 'default' : '',
            \ 'java' : $HOME.'/.vim/dict/j2se14.dict',
            \ 'javascript' : $HOME.'/.vim/dict/javascript.dict',
            \ 'php' : $HOME.'/.vim/dict/PHP.dict',
            \ }

snipMateのトリガーを補完リストに表示する

“g:neocomplcache_snippetsdir”で任意のスニペットフォルダを指定できます。
このパラメータに、snipMateのスニペットフォルダを指定すると、
snipMateのトリガーも補完リストに表示してくれます。

ただ、個人的にsnipMateの方が使いやすかったので、スニペット補完に関してはsnipMateを使用しています。
このとき、補完リストにneocomplcacheとsnipMateのトリガーが重複して表示されてしまっていたので、
“g:neocomplcache_snippetsdir”の設定はしていません。
その代わり、snipMateのトリガーを補完リストに表示するneocomplcacheのプラグインが
公開されていたので、そちらを使用してトリガーが表示されるようにしました。

このサイトで紹介されています。
neocomplcache + snipMate の接着剤 snipMate_complete を試してみる

所感

初回起動時にキーワードがキャッシュされるので、ストレスなく補完リストが表示されました。
snipMateのトリガーを補完リストに表示することで、キーワードを覚えておく必要もないですし、
他にも辞書ファイルやシンタックスなどのキーワードが補完リストに表示されるので、
コーディングもしやすくなりました。
かなり素敵なスクリプトです!!作者の方に感謝です!!

追記

作者様よりコメントを頂き、若干修正しました。
http://lingr.com/room/vim/archives/2010/02/03

MacVimでRailsの環境を作る 〜SnipMateインストール〜

TextMateライクなスニペット補完が可能になるsnipMateというvimスクリプトを入れました。

snipMateは下の動画で紹介されています。

snipMate.vim Introductory Screencast from Michael Sanders on Vimeo.

インストール

下のURLよりスクリプトをダウンロードし、『.vim』フォルダにコピーする。
snipMate – TextMate-style snippets for Vim

スニペットファイルの配置場所

ダウンロードしたファイルの中に”snippets”というフォルダがあるので、そのフォルダに
ファイルタイプ+”.snippet”
のファイル形式で配置すれば、ファイルタイプに応じたスニペットファイルが読み込まれます。
デフォルトのスニペットファイルもいくつかあります。

スニペットファイルの書き方

書き方はこんな感じです。


	snippet トリガーとなるキーワード 説明
		展開する定型文

例えば、

snippet div
	<div id="${1}" class="${2}" style="${3}">
		${4}
	</div>

と定義した場合、
div<TAB>
と入力すると、定義した定型文が展開されます。
上の”${X}”は、<TAB>を入力する毎に、1,2,3・・・の順でカーソルが移動します。
プレースホルダの書き方は以下の通りです。

  • ${1} ・・・ TAB移動するマーカ
  • ${1:name} ・・・ デフォルトで”name”が入力される
  • ${2:$1} ・・・ ${1}で入力した文字が${2}にも同期される

説明は、必須ではありませんが、トリガーのキーワードが重複している場合、
スニペットが一覧表示されますので、そのときにスニペットの説明として表示されます。
こんな感じの画面です。

この画面で展開したいスニペットの数字を入力すると、選択したスニペットが展開されます。

スニペットファイルが公開されているサイト

スニペットファイルがいくつか公開されていました。

所感

スニペットファイルも定義しやすいし、さくさく入力ができるのでかなりおすすめです。
ただ、TextMateのようにプレースホルダの中にプレースホルダを定義出来ないことが残念です。
将来のリリースに期待です。

MacVimでRailsの開発環境を作る 〜MacVimインストールと初期設定〜

明けましておめでとうございます。
今年はブログの更新頻度を上げていきたいと思います。
いつまで続くか分かりませんが、日々の勉強したメモをこまめに追加していきますので
よろしくです。

vimでTextMateライクなスニペット補完が出来るとどこかのサイトで発見したのを発端に
去年の末からvimを触っています。
vimはほとんど初心者ですが、TextMateライクなエディタを目指して構築中です。
まずは、インストールと設定、カラースキーマ・便利なvimスクリプトを入れたのでそのメモから。

インストール

Mac版Gvimをインストールします。
macvim-kaoriya

必要なフォルダとファイルを作成

$HOMEに”.vim”というフォルダと、”.gvimrc”というファイルを作成します。
“.vim”は、MacVimが使用するカラースキーマやスクリプトを格納するフォルダ。
“.gvimrc”はgvimの設定ファイル。そのほかにvimの設定ファイルの”.vimrc”などがあるそうです。

設定

“.gvimrc”に必要な設定を記述。
こんな感じで。

"新しい行のインデントを現在行と同じにする
set autoindent
"バックアップファイルを作るディレクトリ
set backupdir=$HOME/vimbackup
"ファイル保存ダイアログの初期ディレクトリをバッファファイル位置に設定
set browsedir=buffer
"クリップボードをWindowsと連携
set clipboard=unnamed
"Vi互換をオフ
set nocompatible
"スワップファイル用のディレクトリ
set directory=$HOME/vimbackup
"タブの代わりに空白文字を挿入する
set expandtab
"変更中のファイルでも、保存しないで他のファイルを表示
set hidden
"インクリメンタルサーチを行う
set incsearch
"タブ文字、行末など不可視文字を表示する
set list
"listで表示される文字のフォーマットを指定する
set listchars=eol:$,tab:>\ ,extends:<
"行番号を表示する
set number
"シフト移動幅
"set shiftwidth=4
"閉じ括弧が入力されたとき、対応する括弧を表示する
set showmatch
"検索時に大文字を含んでいたら大/小を区別
set smartcase
"新しい行を作ったときに高度な自動インデントを行う
set smartindent
"行頭の余白内で Tab を打ち込むと、'shiftwidth' の数だけインデントする。
set smarttab
"ファイル内の <Tab> が対応する空白の数
"set tabstop=4
"カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,<,>,[,]
"検索をファイルの先頭へループしない
set nowrapscan
"縦幅
set lines=50
"横幅
set columns=150
"入力モード時、ステータスラインのカラーを変更
augroup InsertHook
autocmd!
autocmd InsertEnter * highlight StatusLine guifg=#ccdc90 guibg=#2E4340
autocmd InsertLeave * highlight StatusLine guifg=#2E4340 guibg=#ccdc90
augroup END
"日本語入力をリセット
au BufNewFile,BufRead * set iminsert=0
"タブ幅をリセット
au BufNewFile,BufRead * set tabstop=4 shiftwidth=4
"全角スペースを視覚化
highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=#666666
au BufNewFile,BufRead * match ZenkakuSpace / /
"常にタブを表示
set showtabline=2
"透明度を変更
set transparency=3
map <silent> gw :macaction selectNextWindow:
map <silent> gW :macaction selectPreviousWindow:
"フォント設定
set guifontwide=Osaka:h12
set guifont=Osaka-Mono:h14

設定の詳細については、以下のページが詳しく載ってます。
vim options

カラースキーマで色を変える

カラースキーマをインストールすることで、gvimの色を好きな色に変更することができます。
名無しのvim使いさんのサイトにプレビューが大量に載っていました。
カラースキーマ − 名無しのvim使い

適用する場合は、好きなカラースキーマのファイルをダウンロードし、$HOME/.vim/colorsにダウンロードしたファイルをコピーします。
コピー後、.gvimrcでカラースキーマを設定すればOK。

colorscheme blackbeauty

vimスクリプトのインストール

vimスクリプトは、Eclipseでいうプラグインのようなもので、とにかく数が豊富。
入れたvimスクリプトは以下。

  • autoclose.vim
    • “({[を入力すると、自動的に閉じ記号を補完してくれる
  • EnhancedCommentify.vim
    • ビジュアルモードで選択した範囲にコメント記号を挿入/削除してくれる。詳しい設定は、こちら
  • yankring.vim
    • コピー履歴を保持し、履歴からペーストするテキストを選択できるようになる
  • FavEx.vim
    • フォルダ・ファイルをお気に入り登録し、登録したフォルダ・ファイルを開くことができる
  • mru.vim
    • 開いたファイルの履歴を保持し、開けるようにする
  • NERD_tree.vim
    • ファイルツリーを表示する
  • project.vim
    • gvimをIDEっぽくプロジェクトツリーを表示する

今日はここまで。

参考にしたサイト

ナレッジエース – Vim初心者的導入メモ 2/3 「vimrc設定」編
名無しのvim使い