-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
PHP でオムニ補完を実行すると補完のポップアップが実行されずに、QuickFix のウインドウが開きます。
再現手順
autocmd!
set nocompatible
syntax enable
filetype plugin indent on
set backspace=indent,eol,start
if has('path_extra')
set autochdir
set tags+=$HOME/.vim/tags/**3/tags;
endif
autocmd QuickfixCmdPost grep,grepadd,vimgrep if len(getqflist()) != 0 | copen | endif
autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP
- vim -u .vimrc_simple sample.php で Vim を起動
- 入力モードのまま でオムニ補完を実行
- QuickFix のウインドウが開く
再現環境
- Scientific Linux 6.1 Vim7.3 (最新版ソースを vim.org からダウンロードしコンパイル)をターミナルから使用
- MacVim Kaoriya Vim7.3(最新版のバイナリをダウンロードし使用)をターミナルから使用
Linux の Vim と MacVim では挙動が少し異なり、
- Linux の Vim では エラーメッセージが表示後 QuickFix が開き for と表示され、オムニ補完のポップアップが QuickFix に表示される
- MacVim は QuickFix に for と入力されており、ポップアップは開かない
Linux のエラーメッセージ
E315: ml_get: 無効なlnumです: 2
E315: ml_get: 無効なlnumです: 2
E315: ml_get: 無効なlnumです: 2
E322: 行番号が範囲外です: 1 超えています
E320: 行 2 がみつかりません
E315: ml_get: 無効なlnumです: 2
ctags の set tags+=$HOME/.vim/tags/**3/tags;
の設定箇所が怪しいです。
tag ファイルは $HOME/.vim/tags/py/tags
という Python 用の ctags ファイルがあります。
!_TAG_FILE_FORMAT>2>/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED>1>/0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR>-Darren Hiebert>-/dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME>-Exuberant Ctags>//
!_TAG_PROGRAM_URL>http://ctags.sourceforge.net>-/official site/
!_TAG_PROGRAM_VERSION>5.8>//
add>sample.py>/^def add(x, y):$/;">-f
hello>sample.py>/^def hello(x):$/;">f
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 を削ると発生しません。