Düzenleme sırasında yapılan harici değişikliklerde birleştirme


10

Vim'de düzenlenmekte olan bir dosyada yapılan harici değişiklikler varsa, dosyanın içeriğini yeniden yükleyebileceğimi anlıyorum :edit. Ancak, (dahili olarak) korumak istediğim dosyada değişiklikler yaptığımı varsayın. İki değişiklik kümesini (dış ve iç) entegre etmenin bir yolu var mı? Anladığım kadarıyla, :editsadece dış değişiklikleri alır.


3
Okumak mı gerekiyor :h autoread? Aradığın şey bu mu?
statox

2
:autoreadharici değişikliklerde okur ancak otomatik olarak okunmakta olan dosyada değişiklik yapılması durumunda, vim dahili düzenlemelerimi yaptığımdan beri dosyada harici olarak yapılan değişiklikler olduğunu bildirir. Dış değişiklikleri iç değişikliklerle birleştirmenin bir yolunu arıyorum.
fuzzybear3965

5
Arıyorsunuz :h :DiffOrig?
Christian Brabandt

@ChristianBrabandt, asla çok geç değil, değil mi? Bu harika bir cevaptı. Bunun var olduğunu bilmiyordum.
fuzzybear3965

Yanıtlar:


3

Christian Brabandt'ın yorumunu detaylandırmak için , DiffOrigkomutun ayrıştırılması :

Tam komut:

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
    \ | wincmd p | diffthis

Ayrışma:

command DiffOrig        " create a new command named DiffOrig
vert new                " open a new buffer splitted vertically
| set bt=nofile         " set buffer type to scratch 
| r #                   " read the alternate buffer (opened file to diff)
| 0d_                   " delete the first line
| diffthis              " diff the current buffer
| wincmd p              " move cursor to opened file 
| diffthis              " diff the current buffer

Alternatif bir sürüm ++edit, okuma seçeneğini kullanır, seçenek değerlerini bir dosyayı düzenliyormuş gibi tutar.

Referanslar:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.