nano는 어떤 린터를 지원합니까?

nano는 어떤 린터를 지원합니까?

latex.nanorc파일에는 다음 지침이 있습니다.

syntax "LaTeX" "\.(la)?tex$"
linter lacheck

그러나 linter를 실행하기 위해 키보드 단축키를 누르면 오류 메시지 La commande « lacheck » n'a produit aucune ligne analysable( The 'lacheck' command did not produce any analysable lines예: 영어)가 표시됩니다.

내 tex 파일에서 직접 실행하면 lacheck다음과 같은 출력이 생성됩니다.

"article.tex", line 21: missing `\ ' after "e.g.".

내 생각엔 nano(버전 5.8)가 메시지 형식을 이해하지 못하는 것 같습니다. 나노가 인식하려면 린터가 표준 프로토콜을 따라야 합니까?

답변1

컴파일러 또는 린터 오류 메시지에 대한 사실상의 표준 형식이 있는데, 이는 다음 grep -n과 같습니다. 실험적으로 nano는 이를 지원합니다. 다른 형식을 지원하는지 여부는 살펴보지 않았지만 어쨌든 lacheck의 형식은 지원하지 않습니다.FILE_NAME:LINE_NUMBER:MESSAGE

lacheck 명령에 대한 래퍼를 정의하고 해당 메시지를 표준 형식으로 다시 작성한 다음 lacheck를 직접 호출하는 대신 nano에 래퍼를 호출하도록 지시할 수 있습니다.

#!/usr/bin/env bash
set -o pipefail
lacheck "$@" 2>&1 | sed 's/^"\([^"]*\)", line /\1:/'

관련 정보