Як ви використовуєте дерево змін у vim


14

Чи можливо отримати гілку змін, яку я "покинув"? Наприклад, я скасовую кілька операцій за допомогою u, потім вношу зміни в режимі вставки. Але тоді я усвідомлюю, що не хочу мати цієї зміни, я б швидше повернувся туди, де був на початку (перед тим, як скасувати).

Ці зміни втрачені назавжди?

Відповіді:


12

Для навігації по дереву відміни найкраще скористатися плагіном Gundo . Це створює нове розділене вікно зі спеціальними прив'язками для переходу до різних гілок дерева скасування, а також панель попереднього перегляду, яка показує, що саме змінилося між кожним вузлом дерева.


Іншим вибором буде UndoTree.
musicmatze

12

Для таких простих випадків ви можете просто натиснути g-.

По суті, це полягає в тому, щоб перетинати список змін хронологічно (трактуючи uяк фактичну зміну), а не лінійно (наприклад, з u/ <C-r>).

Наприклад, якщо ви вставили кілька рядків і натискаєте g-, це станеться:

демонстрація


як ви створили анімований gif?
GUIDO

4
@guido Я використовував спеціальний інструмент під назвою mkcast .
Doorknob

2

Ні, ви не можете повернутися назад і вперед по дереву. Найкращий спосіб - використовувати плагін для цієї роботи.

Ще один плагін - Undotree . Це як Гундо , але з деякими відмінностями:

  1. Чиста реалізація vimscript, і сторонні бібліотеки (наприклад, python) не потрібні, не турбуйтеся про продуктивність, для vim це не так вже й багато. Єдина залежність - це інструмент 'diff', який завжди постачається з vim і навіть без 'diff' ви все одно можете використовувати більшість функцій цього сценарію.
  2. Поновлення дерева в режимі реального часу оновлено. Після внесення змін дерево скасування буде оновлено одночасно.
  3. Кілька корисних позначок, наприклад поточний набір змін, наступний набір змін, збережений набір змін тощо.
  4. Перемикання між відносною міткою часу та абсолютною міткою часу.
  5. Вікно скасування в реальному часі оновлено.
  6. Можливість очищення історії скасування.
  7. Більш настроюється.

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