Open heavenshell opened 12 years ago
tagfiles()
がバグってそげ。
vim が内部で行う findfile は ;
があった場合に上方検索を行うので、どんどん検索してメモリが足らなくなったのだと思います。この場合、;
はどうしても必要ですか?
ちなみに、;
を上方検索として使う場合
/usr/include/sys;/usr
の様に ;
の後に上方リミットとなるディレクトリを指定します。これが無い所を見ると、おそらく設定間違い?
まぁ、;
が空の時に無限回に検索にいく vim も vim ですが。
あ、ちなみに僕が解析したのは
E315: ml_get: 無効なlnumです: 2
E315: ml_get: 無効なlnumです: 2
E315: ml_get: 無効なlnumです: 2
E322: 行番号が範囲外です: 1 超えています
E320: 行 2 がみつかりません
E315: ml_get: 無効なlnumです: 2
の件です。これは本来 vimscript を使っている限りでないエラーなのです。これはメモリ不足になったのが原因だと思います。 quickfix が出る件は別途調べます。
すごい簡単でした。tags ファイルが見つからない場合に vimgrep してます。その結果 quickfix が出てますね。 tags ファイルは中身も見て、function があるかを確認しているので、python の def な tags は無視されて、結果 vimgrep が行われた...という事です。
ありがとうございます。
手元の MacVim で set tags+=$HOME/.vim/tags/**3/tags;$HOME
とした所、現象が発生しました。
(Linux でも発生するかは帰宅してから確認します)
現象が発生しました。
ml_get のエラーは出ますか?どっちかっていうとそっちが気になります。 ちなみに quickfix の件は
diff -r 869a63c3f311 runtime/autoload/phpcomplete.vim
--- a/runtime/autoload/phpcomplete.vim Wed Jun 13 19:19:41 2012 +0200
+++ b/runtime/autoload/phpcomplete.vim Wed Jun 20 10:09:10 2012 +0900
@@ -476,7 +476,7 @@
" Prepare list of functions from tags file
let ext_functions = {}
if fnames != ''
- exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
+ exe 'noau silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
let qflist = getqflist()
if len(qflist) > 0
for field in qflist
で直りませんか?
良く見たら結構おうちゃくだなこの処理w
a:base に正規表現が混じってたらアウトだ。
ml_get のエラーは出ますか?どっちかっていうとそっちが気になります。
MacVim では元々 ml_get の方エラーは出ないです。 SL でやった時に発生しました。 ちょっと手元に環境がないので、しばらくお待ち下さいませ。
QuickFix の件はご提示のパッチで行けました!
QuickFix の件はご提示のパッチで行けました!
こっちは vim_dev に投げておきます。あざす。
Linux でも再現しました。
set tags+=$HOME/.vim/tags/**3/tags;$HOME
でエラーメッセージが表示されました。
因に VM 環境でメモリが 512MB しか割り当ててないのも要因かもしれません。
ご提示のパッチを適応した場合、再現しませんでした。
本件は autoload/*.vim
だけにして、エラー部分は #212 でやります。
承知しました。 お手伝いできる事があればしますので、お声がけ下さい。
phpcomplete.vim の author にコンタクト取れとなw 重い作業だw
作者からメールが返ってこないのでbramがじきじきにメールだした←イマココ
PHP でオムニ補完を実行すると補完のポップアップが実行されずに、QuickFix のウインドウが開きます。
再現手順
再現環境
Linux の Vim と MacVim では挙動が少し異なり、
Linux のエラーメッセージ
ctags の
set tags+=$HOME/.vim/tags/**3/tags;
の設定箇所が怪しいです。 tag ファイルは$HOME/.vim/tags/py/tags
という Python 用の ctags ファイルがあります。set tags+=$HOME/.vim/tags/**3/tags;
をset tags+=$HOME/.vim/tags/py/tags;
とすると発生しません。 またautocmd QuickfixCmdPost grep,grepadd,vimgrep if len(getqflist()) != 0 | copen | endif
から vimgrep を削ると発生しません。Linux Vim MacVim