Об'єднайте зовнішні зміни, внесені під час редагування


10

Якщо у файлі, який редагується у Vim, внесені зовнішні зміни, я розумію, що я можу перезавантажити вміст файлу :edit. Але припустимо, що (внутрішньо) я внесла зміни у файл, який я хочу зберегти. Чи є спосіб інтегрувати два набори змін (зовнішніх і внутрішніх)? З того, що я розумію, :editпросто приймає зовнішні зміни.


3
Треба читати :h autoread? Це те, що ви шукаєте?
statox

2
:autoreadчитає у зовнішніх змінах, але у випадку, якщо у файл, який автоматично читається, вносяться зміни, vim сповістить мене про те, що були внесені зміни у файл, оскільки я внесла свої внутрішні зміни. Я шукаю спосіб злити зовнішні зміни з внутрішніми.
fuzzybear3965

5
Шукаєте :h :DiffOrig?
Крістіан Брабандт

@ChristianBrabandt, ніколи не пізно, правда? Це була чудова відповідь. Я не знав, що це існує.
fuzzybear3965

Відповіді:


3

Щоб детальніше зупинитися на коментарі Крістіана Брабандта , ось декомпозиція DiffOrigкоманди:

Повна команда:

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

Розкладання:

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

Альтернативна версія використовує ++editопцію для читання, вона зберігає значення параметрів так, ніби редагує файл.

Список літератури:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.