Поведение отмены по умолчанию в Evil слишком грубо, потому что оно рассматривает все, что происходит между переходом в режим вставки и оставлением его как одной операции редактирования. Когда вы вводите целый абзац текста во время одной вставки и затем выполняете отмену, весь абзац удаляется. В отличие от этого, Vim запускает новый блок отмены всякий раз, когда вы перемещаете курсор в режиме вставки другими способами, чем ввод текста.
Зло имеет переменную настройки, которую можно использовать для получения более детальной истории отмен:
(setq evil-want-fine-undo t)
С этой настройкой Evil запускает новый блок отмены, когда курсор перемещается в режиме вставки, как это делает Vim. Однако этот параметр также не соответствует тому, как обрабатывается операция замены: если вы заменяете слово с помощью cw
, вам придется дважды отменить восстановление исходного слова: один раз для удаления нового слова и один раз для повторной вставки исходного слова. Это несовместимо с Vim и не имеет особого смысла, потому что замена должна быть атомарной.
Вопрос: Как я могу настроить Зло и дерево отмены, чтобы получить поведение отмены Вима?
источник
Ответы:
Поскольку @shosti указал, что Evil рассматривает отклонение от поведения Vim как ошибки, я подал ошибку, и один из авторов Evil добавил новое возможное значение для
evil-want-fine-undo
:С этим параметром вы получаете новые единицы отмены при перемещении курсора в режиме вставки, но операции замены отменяются за один шаг. Насколько я могу судить, это согласуется с Vim. Смотрите здесь для деталей.
источник
'fine
настройка устарела.Согласно описанию переменной (см.
C-h v evil-want-fine-undo
), Значениеfine
больше не поддерживается из-за противоречивого поведения.Поскольку я использую отмену, чтобы отменить опечатки, или упомянутая установка помогла моему выделению.
У меня была проблема ошибки раскручивать в орг-таблицы редактирования формулы, так как вы не должны выйти из режима вставки , если вы хотите , чтобы изменить
*Edit Forumlas*
сC-'
.источник