web-dev-qa-db-ja.com

文字ごとの差分

Linuxに安定したツール(既存のツールのオプション/プラグイン:vimdiff、diffなど)があり、2つのテキストファイルを文字通りに差分できますか?

2つのファイル間の最長共通部分列を強調表示したいと思います。そのための古典的な多項式時間 algorithm がありますが、標準ツールは行ごとにしか機能しないようです。

9
Valentas

古き良きcmpは文字ごとの差分を行います。それは約40年間UNIXの一部です。 https://www.freebsd.org/cgi/man.cgi?query=cmp&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&Arch=default&format=html

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

2
Dominik R

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

enter image description here

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

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

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

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

    let g:DiffColors=100
    

残念ながら、これはラインを越えて機能しません。ただし、一般的な領域はun-強調表示されたままになっている(長くなりすぎる場合は折りたたまれている)ため、それを利用できる可能性があります。


私のViとVim Stack Exchangeの投稿 からコピーされました。

2
muru