-
Notifications
You must be signed in to change notification settings - Fork 10
Closed
Description
質問・報告の内容
set hidden
によりバッファを隠す設定の場合ウィンドウを閉じても diffthis
状態が解除されないため diff の結果がおかしくなります。
https://asciinema.org/a/2mdgrmk21zim4ixty4iehlc9b
また、この状態では以下のコマンドでは隠れたバッファの diff 状態が解除できませんでした。
:diffoff!
:windo diffoff!
:bufdo diffoff!
そのため動画最後に c.txt
に対して diffthis
しているように、全く異なるファイルに対して diffthis
を行った際にワケガワカラナイヨ
Vimのバージョン
- Vim 8.0.596(Vim 7.4 時代からずっと存在している問題だと思います)
( :version
で確認できます)
OSの種類/ディストリ/バージョン
- macOS Sierra (この issue 記載時に確認を取った OS です)
- Ubuntu 16.04 (記載時に確認を取ったわけではなく、ずっと前から問題を認識していたって感じです)
再現手順
前準備
echo "Hello\nWorld" > a.txt
echo "Hello\nworld" > b.txt
echo "foobar" > c.txt
実行 (vim -u NONE
)
:set hidden " これが原因
:e a.txt
:vnew
:e b.txt
:diffthis
:wincmd w
:diffthis
:q
期待動作
比較対象が居なくなるため、ハイライトが消える(set nohidden 時の挙動)
実際の動作
隠れたバッファと比較し続けるため、ハイライトが消えない。
さらに、副次的な以下のような問題もあります
:e c.txt
:diffthis
期待動作
比較対象が居ないため、何も起こらない
実際の動作
隠れたバッファ a.txt および b.txt との比較をするため、ハイライトが酷いことになる(動画の最後参照)