Vim errorformat: использование% D для смены каталога - PullRequest
4 голосов
/ 03 июня 2011

Я изо всех сил пытаюсь найти правильный Vim errorformat, чтобы использовать, когда текущий каталог является родственным каталогом с файлом с ошибкой.Например:

errorformat
errorformat/model
errorformat/spec

Опция Vim's makeprg настроена на выполнение файла в errorformat/spec.Я запускаю make из errorformat/model.Vim настроен на использование каталога текущего файла в качестве рабочего каталога.

Чтобы проверить, я запускаю следующее в errorformat/model/errorformat.vim

set makeprg=ruby\ ~/errorformat/spec/errorformat_spec.rb
let &efm="%D%f,%f:%l"
make!
copen

Как видите, он запускаетсяRuby-файл в каталоге-партнере, который просто выполняет

puts %{errorformat}
puts %{./spec/errorformat_spec.rb:1}
exit 5

. Желаемый эффект заключается в том, что когда я запускаю спецификацию из другого каталога, Vim будет использовать %D в errorformat, чтобы открытьфайл спецификации.Но это не работает.В частности, я просто не могу заставить %D%f делать то, что я ожидаю.Когда я запускаю этот тест, в окне QuickFix отображается

|| errorformat
|| ./spec/errorformat_spec.rb:1

Двойные полосы указывают, что часть %D%f в errorformat не распознает выходные данные.Это также, кажется, препятствует интерпретации следующей строки частью %f:%l.

Должно быть что-то очень простое, что мне не хватает!

1 Ответ

1 голос
/ 12 июля 2011

Проблема была с порядком форматирования ошибки.Часть %D%f должна была пройти после части %f:%l.

...