Próbuję dopasować następujący błąd z efm
:Vim: Format Error dopasowuje wszystko
AssertionError: 1 == 2
at /home/strager/projects/blah/blah.js:13:37
komunikat o błędzie może być cokolwiek (to nie zawsze odpowiadają AssertionError: .*
lub .*Error: .*
formatów). Ogólny format:
errormessage
at filename:line:column
Moim problemem jest to, że komunikat o błędzie mecze dowolny linia; Muszę ograniczyć komunikat o błędzie tylko do jednej linii i pasować tylko wtedy, gdy jest po niej pasująca linia "at".
Próbowałem następujących efm
:
set efm=%Z\ \ \ \ at\ %f:%l:%c,%E%m
" %Z at %f:%l:%c,%E%m
To prawie działa, ale pasuje do linii statusu (np niebędące błędy przed i po wystąpieniu błędu) oprócz błędów. Jak mogę wymusić, aby %E%m ... %Z
było tylko dwoma liniami (jeden dla komunikatu o błędzie, a drugi dla linii at
)? W razie potrzeby mam dostęp do standardowych narzędzi UNIX dla makeprg
.
To jest to, co miałem na początku, ale to pasuje do każdej linii jako "błąd" bez dodatkowych informacji. "Efm", który napisałem w moim pytaniu, robi to, ale również wykrywa nazwę pliku oraz numery linii i kolumn linii "at". – strager