1

Vim を使用して Oracle Pro*C ファイルをコンパイルすると、次の問題が発生します。

  1. 何も問題がなければコンパイルは終了しますが、現在開いているファイルがなくなって画面が空になり (これは Pro*c ファイルでのみ発生し、通常の .c は正常に動作します)、ヒットCtrlOすると元のファイルに移動します。

  2. コードに問題がある場合は、クイックフィックス ウィンドウを開くことができますが、問題のある場所を示す行に自分自身を配置すると、何も実行されません。

私は Vim にかなり慣れていないので、これらの問題に取り組む方法がわかりません。

どんなアドバイスでも大歓迎です

役立つ場合はvim 7.3を使用しています。

4

1 に答える 1

0

問題は、Vim が*.pcファイルを (デフォルトで) 別のファイル形式に関連付けerrorformat、Oracle Pro*C のバロック警告/エラー メッセージ スタイルに適したパターンが付属していないことです (少なくとも Vim 7.2 または 7.4 を使用している場合)。

(最初の問題はデフォルトerrorformatがPro*Cの起動メッセージと一致した結果であり、2番目の問題はデフォルトのerrorformatパターンがPro*Cの警告/エラー・メッセージと一致しないためです。)

errorformatPro*C ファイルには、次の追加パターンを使用します。

"append patterns for Pro*C multi line error message:
set efm+=%ESyntax\ error\ at\ line\ %l\\,\ column\ %c\\,\ file\ %f:,%ESemantic\ error\ at\ line\ %l\\,\ column\ %c\\,\ file\ %f:,%EError\ at\ line\ %l\\,\ column\ %c\ in\ file\ %f,%ZPCC%[A-Z0-9-]%#\\,\ %m,%C%.%#

"prepend ignoring string to ignore Pro*C startup message
set efm^=%-GPro*C/C++:\ Release%.%#

これらの行を に追加できます~/.vimrc

ファイルタイプ検出の関連する問題を修正するには、正しい filtetype を構成できます。

$ cd ~/.vim
$ mkdir ftdetect
$ cd ftdetect
$ cat > pc.vim
au BufRead,BufNewFile *.pc  set filetype=esqlc

ただし、インデントの場合、これでは十分ではありません。

次のようなものを想定

filetype plugin indent on

~/.vimrcC のインデント規則を明示的に設定できます。

$ cd ~/.vim
$ mkdir indent
$ cd indent
$ cp /usr/share/vim/vim72/indent/c.vim esqlc.vim

それがなければ、ファイルにインデントがまったく表示され.pcません-Cコードでさえも。

于 2013-09-13T19:10:59.347 に答える