1

emacs (および nXhtml) で HTML ファイルを開くと、flymake から次のエラーが表示されます。

エラー (flymake): Flymake: 構文チェック プロセス 'xml' を引数 (val /home/ABC/Downloads/capitals_flymake.html) で起動できませんでした: プログラムを検索しています: そのようなファイルまたはディレクトリはありません, xml. Flymakeがオフになります

これは、コマンドラインで実行できるプログラムをインストールする必要があることを意味すると思いますxml. ただし、ドキュメントでこのプログラムが何であるかを見つけることができませんでした。

また、現在、次の要点を使用して(コメント投稿者の 1 人が に変更するように提案した変更を加えequal>=)、 my の Mumamo バッファ ファイル名の警告を無効にしています.emacs

;; Workaround the annoying warnings:
;; Warning (mumamo-per-buffer-local-vars):
;; Already 'permanent-local t: buffer-file-name
(when
    (and
     (>= emacs-major-version 24)
     (>= emacs-minor-version 2))
  (eval-after-load "mumamo"
    '(setq mumamo-per-buffer-local-vars
       (delq 'buffer-file-name mumamo-per-buffer-local-vars))))

しかし、それが関連しているかどうかはわかりません。

flymake を nXhtml で動作させるにはどうすればよいですか? 現在、GNU Emacs 24.3.1 を使用しています。

4

2 に答える 2

0

flymake が使用するように指示された既定のプログラム ( xml) がコンピューターにインストールされていないか、その場所がパスにありません。@wvxvwが言ったように、flymakeに別の構文チェッカーを使用するように指示する必要があります(コードについては回答を参照してください)。

ただし、構文チェッカーを変更する場合、新しいチェッカーがエラー メッセージを出力する方法を flymake に伝える必要がある場合もあります。そうしないと、flymake はチェッカーの出力を読み取る方法を認識できません。

新しいチェッカー プログラムに 0 以外の終了コード (通常はエラーを示します) があり、flymake がエラー テキストとして認識されるものを何も見なかった場合、flymake は CFGERR をスローしてオフにします。

flymakeマニュアルから:

次のエラーは、警告メッセージを表示し、バッファの flymake モードを OFF に切り替えます。

CFGERR : 構文チェック プロセスはゼロ以外の終了コードを返しましたが、エラー/警告は報告されませんでした。これは、構成エラーの可能性を示しています (たとえば、構文チェック ツールに適切なエラー メッセージ パターンがない)。

したがって、必要なことは、更新されたパーサーからのエラーを解釈する方法を flymake に指示することです。これを行うには、flymake がパーサーの出力に対してチェックする正規表現をリストに追加します。次のようなものを.emacsファイルに追加します。

(add-to-list
    `flymake-err-line-patterns
    '("at line \\([0-9]+\\) of \"\\([^ \n]+\\)\"$" 2 1 nil))

"at line \\([0-9]+\\) of \"\\([^ \n]+\\)\"$"これにより、パーサーが正規表現 ( ) に一致する出力を生成した場合、それをエラー メッセージとして識別することがflymake に伝えられます。正規表現の2 1 nilどのグループがファイル、行番号、および列番号をそれぞれ表すかを flymake に伝えます。エラー メッセージでその情報が提供されない場合は、そのパラメーターを に設定しますnil。この例では、エラー メッセージはファイル (2 番目のグループ) と行番号 (最初のグループ) のみを識別するため、列は nil に設定されます。

于 2013-09-16T19:04:47.317 に答える