Nano

nano 支持哪些 linter?

  • July 28, 2021

在我的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英文)。

當我lacheck在我的 tex 文件上自行執行時,它會產生以下輸出:

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

我的猜測是 nano(5.8 版)不理解消息的格式。是否有一個 linter 必須遵守的標準協議才能被 nano 辨識?

編譯器或 linter 錯誤消息有一個事實上的標準格式,其格式與grep -n:相同。在實驗上,nano 支持這一點。我沒有研究它是否支持任何其他格式,但無論如何它不支持 lacheck 的格式。*FILE_NAME*:*LINE_NUMBER*:*MESSAGE*

您可以為 lacheck 命令定義一個包裝器,以標準格式重寫其消息,並告訴 nano 呼叫該包裝器而不是直接呼叫 lacheck。

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

引用自:https://unix.stackexchange.com/questions/660285