Мне известно о нескольких различных реализациях vim в Emacs. Есть злой режим, viper, vimpulse и vim-mode. Есть ли другие? Как они сравниваются?
Я отмечаю, что evil-*
на MELPA есть много пакетов, и предполагается, что ни один из них не является на 100% полнофункциональным. Какие функции Vim они предоставляют, и какие функции VIM отсутствуют?
(Меня не интересует обратное, где « набор макросов vi, которые [являются] довольно полной реализацией Emacs »!)
vim-emulation
Уилфред Хьюз
источник
источник
Ответы:
vi
,vip
Иviper
(упорядоченные по дате создания) приходят встроенные с Emacs, все те эмулировать VI.vim-mode
это новая, самостоятельная попытка фактически эмулировать Vim,vimpulse
это набор дополнительных функций,viper
которые предоставляют одну из самых полезных функций Vim.evil
был создан как заменаvim-mode
.evil
это самый последний и единственный активно развивающийся проект. Его цель - добросовестно эмулировать модель редактирования Vim, максимально используя существующие возможности Emacs. Лично я бы сказал, что он выполнен примерно на 90%, потому что несколько новых команд (таких какgn
) отсутствуют, некоторые функции, связанные с отображением, довольно трудно воссоздать (например, отображение тильд после конца файла), и они не реализуются. интерпретатор Vimscript или что-то кроме основ Ex-режима. Однако его легче расширять и анализировать, чем оригинал,evil-*
расширения являются Emacs-эквивалентами плагинов Vim почти во всех случаях (evil-leader
например, это будет исключение, потому что нет необходимости предлагать, учитывая поддержку Emacs keymap).Учитывая,
evil
что в некоторых моментах он превосходит Vim (см.:s
Его визуальный предварительный просмотр или то, как мало усилий создает создание нового полезного режима ), я искренне рекомендую его всем, кто интересуется модальным редактированием для Emacs.источник
g/
что были новой командой в Vim. Я никогда не видел его и не могу найти никакой документации по нему. Что это делает в Vim?gn
. Превращает результаты поиска в текстовый объект. Кроме того, это уже реализовано.Поскольку,
evil
насколько мне известно, это единственный активно разработанный режим эмуляции vim, я сделаю свой ответ специфичным для зла.evil
очень удобен и очень похож на vim-подобный опыт, но есть некоторые функции vim, которые, скорее всего, не будут реализованы (по замыслу), а некоторые не завершены, но могут быть добавлены в конце концов. Некоторые примеры вещей, которые, скорее всего , не будут добавлены:C-a
иC-x
) не будут добавлены, потому чтоC-x
это слишком важно для привязки клавиш Emacs.\
он связан сevil-execute-in-emacs-state
по умолчанию.C-u
не ограничен прокруткой по умолчанию, потому что это слишком важно, как привязка клавиш Emacs (хотя вы можете перезаписать это с помощьюevil-want-C-u-scroll
).Чтобы найти список функций vim, которые еще не реализованы (на момент написания этого ответа), лучше всего искать средство отслеживания проблем . Случайная выборка вещей, которые есть в списке:
ex
не реализовано .:make
не отображается наM-x compile
.C-o
вinsert
режиме не ведет себя так, как в vim .Есть еще много, в том числе команды, которых нет в списке открытых проблем (особенно сложные
ex
команды), но, как вы можете видеть из списка, они имеют тенденцию быть довольно незначительными или скрывать функции vim (vim - довольно большая цель, с которой достичь 100% паритета характеристик).источник
Цель Зла - подражать Виму, а цель Гадюки - подражать Ви. Vim-mode и Vimpulse являются предшественниками зла и, насколько мне известно, больше не развиваются. Злой проект был начат для устранения недостатков этих проектов.
источник