Проблема в том, что Vim связывает *.pc
файлов с файлами другого формата (по умолчанию) и не имеет ссылки errorformat
, который подходит для вычурного стиля предупреждений/сообщений об ошибках Oracle Pro*C (по крайней мере, при использовании Vim 7.2 или 7.4).
(Ваша первая проблема является результатом того, что errorformat
по умолчанию соответствует сообщению о запуске Pro*C, а вторая проблема связана с тем, что шаблоны errorformat
по умолчанию не соответствуют никаким предупреждениям/сообщениям об ошибках Pro*C.)
Я использую следующие дополнительные шаблоны errorformat
для файлов Pro*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
.
Чтобы исправить связанную с этим проблему определения типа файла, вы можете настроить правильный тип файла:
$ cd ~/.vim
$ mkdir ftdetect
$ cd ftdetect
$ cat > pc.vim
au BufRead,BufNewFile *.pc set filetype=esqlc
Однако для отступа этого недостаточно.
Предполагая что-то вроде
filetype plugin indent on
в вашем ~/.vimrc
вы можете явно настроить правила отступа C:
$ cd ~/.vim
$ mkdir indent
$ cd indent
$ cp /usr/share/vim/vim72/indent/c.vim esqlc.vim
Без этого я вообще не получаю никаких отступов в файлах .pc
- даже в коде C.
person
maxschlepzig
schedule
13.09.2013