2016-08-30 2 views
2

Согласно vim wiki:Есть ли у «злого режима» vim, как функция «changes»?

Vim запоминает места, где произошли изменения. Каждая позиция (номер столбца, номер строки) записывается в список изменений, и каждый буфер имеет отдельный список изменений, в котором записаны последние 100 позиций , где произошло отменное изменение.

Затем можно использовать г;, чтобы перейти к последнему изменению в списке изменений. Этот список выживает через разные сеансы. Это означает, что даже если вы не внесли никаких изменений в файл после его открытия в новом сеансе, g; переместит курсор/точку в строку, где последнее изменение произошло в предыдущем сеансе.

Из того, что я могу сказать, evil-mode не имеет списка изменений на буфер, который выживает. Или это?

+1

Запрашивать на http://emacs.stackexchange.com/ может дать больше ответов. – Tom

+0

[Готово] (http://emacs.stackexchange.com/questions/26870/does-evil-mode-have-vim-like-changes-function). – user3156459

+0

Пожалуйста, удалите один из дублирующих вопросов здесь или на emacs.SE. Выберите один или несколько сайтов для вашего вопроса - любое место в порядке. Спасибо. – Drew

ответ

0

Возможно, вы хотите посмотреть на Undo Tree, который используется evil-mode, если установлен undo-tree. Я не думаю, что у него есть функциональность g;, которую вы описываете. Тем не менее, он может поддерживать историю отмены между сеансами.

+0

Ну, 'Undo Tree' - это зависимость от« злого режима ». Я подозреваю, что проблема каким-то образом привязана к 'Undo Tree', так как ее ветвящаяся модель сохранения истории отмены немного неинтуитивна: попадание' u' в злой режим не отменяет изменения, если вы находитесь на верхушке отменить список. И 'evil-mode' связывает g; на '(goto-last-change ARG)'. Таким образом, должно быть, я полагаю, можно использовать его в сеансах, возможно, удалив древовидную модель «Undo-Tree». – user3156459

0

Посмотрите на goto-last-change на melpa. Evil имеет интеграцию по умолчанию через g;.

+1

Эта функция определена в [Goto-chg] (https://www.emacswiki.org/emacs/GotoChg), которая является зависимостью от 'evil-mode'. Кажется, он не предоставляет кросс-сессионный список «изменений». Существует некоторая дискуссия о [goto-last-chage here] (https://www.emacswiki.org/emacs/GotoLastChange), и, похоже, также используется «buffer-undo-list», значение которого не выжить. – user3156459

+0

Я подозреваю, что ключевым отличием является то, что vim поддерживает два списка: 'changes' и' undo'. Кажется, что все реализации emacs используют 'buffer-undo-list'. – user3156459

Смежные вопросы