Я пытаюсь сделать выделенную отмену в Vim, например, конфигурацию по умолчанию для spacemacs. Иногда, когда я хочу быстро отменить, я не могу понять, что изменилось, потому что это происходит мгновенно. Поэтому я пытаюсь сделать что-то подобное, когда отмена прессы:
У кого-нибудь есть идеи, как это сделать в Vim?
(У меня уже есть плагин Gundo, я просто хочу сделать отмену по умолчанию более плавной)
Редактировать : плагин undotree выполняет свою работу ( Gundo не выделяет изменения), просто используйте UndotreeToggle
команду, и все будущие изменения в файле будут выделены.
matchadd()
, но немного сложнее определить, какие части файла изменились.Ответы:
Новое решение
Вы можете просмотреть свои последние изменения с помощью
:changes
команды. Таким образом, вы можете откорректировать свое последнее изменение строки с помощью регулярного выражения, а затем применить строку к,matchadd()
как это предложено @joeytwiddle.Вот код:
Примечание :
Эта функция только добавляет новое выделение, не удаляя старое, поэтому вам придется сначала удалить старое.С помощьюclearmatches
функции вы можете удалить совпадения перед добавлением нового. Осторожно, он удалит ВСЕ совпадения. Если вы хотите больше детализации, вы можете сохранить совпадение и удалить его вручную:например
Ссылки :
Старое решение
Вот возможное решение, в основном основанное на текущем буфере Diff и оригинальном файле :
Идея состоит в том, чтобы сравнить файл с файлом в системе, чтобы отменить последнее изменение, записать его, повторить изменение las и выполнить diff.
Я думаю, что это должно делать работу для временных визуализаций временного различия.
источник
Проверьте мой плагин изменений и обязательно установите переменную
g:changes_linehi_diff
в 1источник
Для кого-то, кто пробует то же самое от меня, это ближе всего, что я достиг благодаря ответам.
источник