文字ごとの違い


9

Linuxに2つのテキストファイル間で文字ごとにdiffを実行するための安定したツール(既存のツールのオプション/プラグイン:vimdiff、diffなど)はありますか?

私の2つのファイル間の最も長い共通のサブシーケンスを強調表示したいと思います。そのための古典的な多項式時間アルゴリズムがありますが、標準ツールは1行ずつしか機能しないようです。

回答:


2

グッド・オールドcmpはキャラクターごとの違いをします。約40年間UNIXの一部でした。 https://www.freebsd.org/cgi/man.cgi?query=cmp&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&arch=default&format=html

残念ながら、それは最初の異なる文字で止まるので、この答えがあなたに役立つかどうかわかりません。


ありがとう。私はcmp -bl ...この答えを見つけた後に実行しました、そしてそれは複数の違いとそれらのポジションを報告しました。私のバージョンはcmp (GNU diffutils) 3.6です。
Dzamo Norton

2

インストールdiffchar(プラグインオートローダーを使用する場合はGithubリンク)。プラグインを有効にしたv4.7以降、Vimはより正確な違いを自動的に表示します。

ここに画像の説明を入力してください

  • F7(デフォルトのキーマップ)を押して、通常とプラグインを切り替えることができます。再割り当て:

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

    <key>適切なキーコードに置き換えます。

  • より多くの色を使用できます。

    let g:DiffColors=100
    

残念ながら、これはすべての行で機能しません。ただし、共通領域は強調表示されないままになり(長すぎる場合は折りたたまれます)、そのため、それを利用できる場合があります。


私のViおよびVim Stack Exchangeの投稿からコピーしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.