0

多くの検索と試行の後、私はこれをvimできちんと動作させることがわかりました:

:set makeprg=tidy\ -e\ --gnu-emacs\ yes 
:set shellpipe=2>
:set errorformat=%f:%l:%c:\ %m
:make %
:copen

しかし、クイックフィックス ウィンドウの出力で、各行^Mの終わりに UNIX の改行があるのはなぜですか? 削除しようとしましたが、クイックフィックス ウィンドウのコンテンツは変更できません。

また、エラーをきちんと修正しようとしましたが、エラーのみです。

私はこれを作成しました:

   let errorf = "d:\\error.txt"
   let currentf = expand("%:p")
   let writef = "d:\\".expand("%:t:r")."_tidy.".expand("%:e")

   exe a:type."!tidy -w 0 -f ".errorf." -o ".writef." ".currentf 
   exe ":bot split ".writef
   exe ":bot split ".errorf

しかし、これは私のファイルの完全な出力を変更します。エラーのみを修正したい。tidy のマニュアルを読みましたが、ファイルの残りの部分を変更せずにエラーのみを修正する簡単なオプションが見つかりません。ペ

<h1>test</h2>  --> <h1>test</h1>

tidy のエラーだけを変更する方法を知っている tidy ユーザーはいますか?

4

2 に答える 2

1

tidy の出力を sed にパイプしてフィルターを作成し、vim がクイックフィックス ウィンドウに配置する前にキャリッジ リターンを削除することができます。

set makeprg=tidy\ -e\ --gnu-emacs\ yes\ $*\ \\\|\ sed\ 's/\\r$//'

パイプは、セットごとに 2 回エスケープする必要があり、コマンドの解釈のために 1 回エスケープする必要があります。

私が使用したsedコマンドは

sed 's/\r$//

これにより、行末に表示されるキャリッジ リターンが削除されます。

于 2013-08-16T14:06:05.473 に答える