2017-09-03 5 views
3

vimdiffを使い始めました。色を設定しようとしています。 DiffAddDiffDeleteグループは正常に機能しますが、ファイルの古いバージョンと新しいバージョンのそれぞれの色はDiffChangeDiffTextです。 (具体的には、古いファイルの場合は赤、新しいファイルの場合は緑です)Visual Studioコードの動作方法は次のとおりです。vimdiff:左右のペインの色が異なっています

問題はハイライトカラーがバッファ間で共有されることです。すべてのインスタンスをDiffChangeからMyDiffChangeにペインで再マッピングする関数を作成する方法があることを期待していますが、私はそれを行う方法を見つけていません。

かなりハックな解決策は、

+1

ハイライトグループはグローバルで、「古いファイル」と「新しいファイル」は除いて、「右ウィンドウ」と「左ウィンドウ」という概念はありません。私はあなた自身ですべてを書かなければならないのではないかと心配しています。 – romainl

答えて

0

ハイライトの定義は実際にはグローバルスコープで、多くの差分処理は固定されており、ビルトインされています。これをサポートしていません。

ハッキングとして、より高い優先度でmatchadd()で強調表示を無効にすることができます。これらの定義はウィンドウスコープであるため、ファイルの内容に基づいて異なる定義を定義できます(バッファローカル変数b:version、値oldまたはnew)。 Vimが変更したと思われる行を検出する必要があります。ファイルを自分で再度diffするか、またはdiff_hlID()を使って変更します。アイデアはdiffchar.vim pluginをご覧ください。プラグインは同様のオーバーレイを実装します。

関連する問題