Режим быстрого исправления Vim с файлами Oracle Pro*C?
При использовании Vim для компиляции файла Oracle Pro*C у меня возникают следующие проблемы:
если все в порядке, компиляция заканчивается, но текущий открытый файл исчезает, и экран становится пустым (это происходит только с файлами Pro * c, обычный.c работает нормально), при нажатии CtrlO происходит переход к исходному файлу.
если есть проблема в коде, я могу открыть окно быстрого исправления, но когда я позиционирую себя над линией, которая показывает местоположение с проблемой, она ничего не сделает.
Я довольно новичок в 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
файлы - даже не кода Си.