Редагування програм – ЧАСТИНА 9

22141  Огляд Emerge

Щоб запустити Emerge, виконайте одну з цих чотирьох команд:

M-x emerge-files

Обєднує два заданих файлу

M-x emerge-files-with-ancestor

Обєднує два заданих файлу, з посиланням на загального предка

M-x emerge-buffers

Обєднує два буфера

M-x emerge-buffers-with-ancestor

Обєднує два буфера з посиланням на загального предка в третьому буфері

Команди Emerge порівнюють два файли або буфера і відображають результат порівняння в трьох буферах: по одному на кожен документ (буфер A і буфер B) І один (буфер обєднання), де обєднання і відбувається Буфер обєднання показує весь поєднуваний текст, а не лише відмінності Скрізь, де буфери розрізняються, ви можете вибрати той, з якого ви хочете внести фрагмент

Команди Emerge, які беруть введення з існуючих буферів, використовують тільки їх доступні частини, якщо ці буфери звужені (див Розділ 308 [Звуження], с 335)

Якщо доступна загальна початкова версія, від якої відбуваються обидва зливаються тексту, Emerge може використовувати її, щоб вивести припущення про те, яка з альтернатив правильна Коли одна з поточних версій знаходиться у згоді з предком, Emerge припускає, що інша поточна версія – це обдумане зміну, яка має зберегтися в обєднаній версії Якщо ви хочете вказати загальний початковий текст, використовуйте команди with-ancestor. Ці команди зчитують три файли або імені буфера – варіант A, варіант B і їх загального предка

Після того як порівняння завершено, і буфери підготовлені, розпочинається інтерактивне обєднання Ви можете управляти ним, набираючи особливі команди обєднання в буфері обєднання Цей буфер показує вам повний обєднаний текст, а не лише відмінності Для кожного проміжку відмінностей між вхідними текстами ви можете зберегти будь-який або відредагувати їх разом

У буфері обєднання використовується особливий основний режим, режим Emerge, з командами для прийняття таких рішень Але ви також можете редагувати цей буфер за допомогою звичайних команд Emacs

У будь-який момент часу увагу Emerge зосереджено на одному конкретному зраді-

панії, званому виділеним Ця зміна позначається в трьох буферах таким чином:

vvvvvvvvvvvvvvvvvvvv

различающийся текст

^^^^^^^^^^^^^^^^^^^^

Emerge послідовно нумерує всі відмінності, і рядок режиму завжди показує номер виділеного відмінності

Зазвичай буфер обєднання початку містить версію A тексту Але коли версія A зміни узгоджується із загальним предком, для цього зміни перевага віддається версії B

Коли ви виходите, Emerge залишає обєднаний текст в буфері обєднання Тоді ви можете зберегти його за допомогою Cx Cw Якщо ви задали emerge-files або emerge-files-with-ancestor числовий аргумент, ці команди вважає імя вихідного файлу в мінібуфер (Це останнє імя, яке вони зчитують) Тоді при виході з Emerge обєднаний текст зберігається у вихідному файлі

Зазвичай команди Emerge зберігає вихідний буфер, коли ви виходите Якщо ви скасуєте Emerge за допомогою C-], команда Emerge не збереглося вихідний буфер, але ви можете записати його самі, якщо хочете

22142  ПідрежимиEmerge

Ви можете вибирати з двох режимів для віддання команд обєднання: режим Fast і режим Edit У режимі Fast основні команди обєднання – це поодинокі знаки, але звичайні команди Emacs вимкнені Це зручно, якщо ви використовуєте тільки команди обєднання У режимі Edit всі команди обєднання починаються із префікса Cc Cc, і доступні також звичайні команди Emacs Це дозволяє редагувати буфер обєднання, але уповільнює операції Emerge

Використовуйте e, щоб переключиться в режим Edit, і Cc Cc f, щоб переключиться в режим Fast Рядок режиму зображує режими Edit і Fast за допомогою E і F.

Emerge має два додаткових підрежиму, які зачіпають спосіб роботи певних команд обєднання: режим Auto Advance і режим Skip Prefers

Якщо діє режим Auto Advance, команди a і b просувають до наступного відмінності Це дозволяє вам швидше зробити обєднання, оскільки ви просто вибираєте одну з вхідних альтернатив Рядок режиму зображує режим Auto Advance як A.

Якщо діє режим Skip Prefers, команди n і p пропускають відмінності в станах prefer-A і prefer-B (див Розділ 22143 [Стан відмінності], с 232) Таким чином, ви бачите тільки ті відмінності, для яких жодна з версій НЕ передбачається правильної. Рядок режиму зображує режим Skip Prefers за допомогою S.

Використовуйте команду sa (emerge-auto-advance-mode), щоб встановити або скинути режим Auto Advance Використовуйте ss (emerge-skip-prefers-mode), щоб встановити або скинути режим Skip Prefers Ці команди включають режим, якщо їм поставлено позитивний аргумент, вимикають при негативному аргументі і перемикають режим, якщо аргумент не заданий

22143  Стан відмінності

Відмінності в буфері обєднання позначаються рядками знаків v і ^. Кожне розходження має одне з семи наступних станів:

A Різниця показує версію A Команда a завжди справляє цей стан

рядок режиму відображає його як A.

B Різниця показує версію B Команда b завжди справляє цей стан

рядок режиму відображає його як B.

default-A

default-B Різниця показує версію A або B за замовчуванням, тому що ви не зробили вибір Усі відмінності спочатку мають стан default-A (і таким чином, буфер обєднання – це копія буфера A), крім тих, для яких краща інша альтернатива (дивіться нижче)

Коли ви обираєте відмінність, його стан замінюється з default-A або default-B на просте A або B Таким чином, вбрання відмінність ніколи не перебуває у стані default-A або default-B, і ці стани ніколи не відображаються в рядку режиму

Команда da вибирає як стану за замовчуванням default-A, а db вибирає default-B Це стан за замовчуванням застосовується до всіх відмінностей, які ви ніколи не вибирали і для яких немає кращою альтернативи Якщо ви просувається послідовно, то відмінності, які ви не вибирали, – це ті, що знаходяться після обраного Таким чином, просуваючись послідовно, ви можете в результаті зробити A версією за замовчуванням для деяких фрагментів буфера обєднання, а B – версією за замовчуванням для решти фрагментів, використовуючи між відмінностями da і d b

prefer-A

prefer-B Різниця показує стан A або B, тому що воно переважно Це означає, що ви не зробили явного вибору, але схоже на те, що вірна одна з альтернатив, тому що друга узгоджується із загальним предком Значить, коли буфер A знаходиться у згоді із загальним предком, краща версія B, тому що швидше за все це і є дійсне зміна

Ці стани показуються в рядку режиму як A * і B *.

combined Різниця показує комбінацію станів A і B, як результат команд xc

або x C

Коли розходження має цей стан, команди a і b не роблять для нього нічого,

якщо тільки ви не поставите їм числовий аргумент

Рядок режиму показує цей стан як comb.

22144  Команди обєднання

Це команди обєднання для режиму Fast в режимі Edit передують їм набором Cc

C-c:

p Вибирає попереднє відмінність

n Вибирає наступне відмінність

a Вибирає версію A цієї відмінності b Вибирає версію B цієї відмінності C-u n j Вибирає відмінність номер n

. Вибирає відмінність, що містить точку Ви можете використовувати цю команди в буфері обєднання або в буферах A і B

q Вихід – завершує обєднання

C-] Переривання – виходить і не зберігає висновок

f Перехід в режим Fast (В режимі Edit це насправді Cc Cc f)

e Перехід в режим Edit

l Центірірует (як Cl) всі три вікна

Задає частину префіксного числового аргументу

цифра Також задає частину префіксного числового аргументу

da Вибирає A як версію за замовчуванням для буфера обєднання починаючи з цього місця

db Вибирає B як версію за замовчуванням для буфера обєднання починаючи з цього місця

ca Копіює версію A цієї відмінності в список знищень cb Копіює версію B цієї відмінності в список знищень ia Вставляє версію A цієї відмінності в точці

ib Вставляє версію B цієї відмінності в точці

m Поміщає точку і мітку навколо цієї відмінності

^ Прокручує всі три вікна вниз (як Mv)

v Прокручує всі три вікна вгору (як Cv)

< Прокручує всі три вікна вліво (як Cx <).

> Прокручує всі три вікна вправо (як Cx>)

| Скидає горизонтальну прокрутку у всіх трьох вікнах

x 1 Звужує вікно обєднання до одного рядка (Використовуйте Cu l, щоб віднов-

новить його повний розмір)

xc Комбінує дві версії цієї відмінності (див Розділ 22146 [Комбінування в Emerge], с 235)

xf Показує імена файлів / буферів, з якими працює Emerge, у вікні справ-

ки (Використовуйте Cu l, щоб відновити вікна)

xj Зціплює це розходження з наступним (Cu xj зчіплює це розходження з пре-

дидущей)

xs Розбиває це розходження на два До того, як застосувати цю команду, розта-

житі крапку в кожному їх буферів в тому місці, де ви хочете розбити відмінність

xt Викидає однакові рядки зверху і знизу відмінності Такі рядки зявляються, коли версії A і B ідентичні, але відрізняються від первісної версії

22145  Вихід з Emerge

Команда q (emerge-quit) завершує обєднання, записуючи результати у вихідний файл, якщо ви його задали Вона відновлює правильне вміст буферів A і B або знищує їх, якщо вони були створені Emerge, і ви не змінювали їх Вона також вимикає в буфері обєднання команди Emerge, оскільки виконання їх тепер може пошкодити вміст різних буферів

C-] перериває обєднання Це означає вихід без запису вихідного файлу Якщо ви не вказали вихідний файл, то між перериванням і завершенням обєднання насправді немає різниці

Джерело: Річард Столмен, Керівництво по GNU Emacs

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*