Режим быстрого исправления Vim с файлами Oracle Pro*C?

При использовании Vim для компиляции файла Oracle Pro*C у меня возникают следующие проблемы:

  1. если все в порядке, компиляция заканчивается, но текущий открытый файл исчезает, и экран становится пустым (это происходит только с файлами Pro * c, обычный.c работает нормально), при нажатии CtrlO происходит переход к исходному файлу.

  2. если есть проблема в коде, я могу открыть окно быстрого исправления, но когда я позиционирую себя над линией, которая показывает местоположение с проблемой, она ничего не сделает.

Я довольно новичок в Vim, поэтому не знаю, как справиться с этими проблемами.

Любой совет ценится

Я использую Vim 7.3, если это помогает.

1 ответ

Проблема в том, что 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,

Чтобы исправить связанную проблему обнаружения типов файлов, вы можете настроить правильный тип filtetype:

$ 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 файлы - даже не кода Си.

Другие вопросы по тегам