basyura's blog

あしたになったらほんきだす。

plugin/rails.vim を読む - その2

" Apparently, the nesting level within Vim when the Ruby interface is
" initialized determines how much stack space Ruby gets.  
"   どうやら、Ruby が初期化される時に
"   どれだけのスタック領域を取得するかによって、
"   Vim 内のネストレベルが決まるようだ。
" In previous versions of rails.vim, 
" sporadic stack overflows occured when omnicomplete was used.
"   前バージョンの rails.vim では
"   omnicomplete 使用時にスタックオーバーフローが時々起こった。
" This was apparently due to rails.vim having first initialized
" ruby deep in a nested function call.
"   どうやら rails.vim が最初に ruby を初期化する際の
"   呼び出しが深かったからのようだ。
"   
" (※) 訳自信なし

" ruby がサポートされている場合
if has("ruby")
  " ruby 呼び出し
  silent! ruby nil
endif

has

has({feature})  
    結果は機能{feature}がサポートされる場合1、
    されない場合0となる。

なんでこれで回避できるのかは良く分からない