Какие функции Vim отсутствуют в Emacs с Viper и Vimpulse?

Существуют важные функции Emacs, отсутствующие в Vim, такие как режим comint, и нет скриптов/плагинов, которые могут их заменить.

Есть также преимущества Vim над Emacs, такие как модальное редактирование и, как правило, лучшие ярлыки по умолчанию. Однако режим Viper дает мне обоим. Vimpulse также обеспечивает визуальный режим. К сожалению, ни один режим не может заставить Emacs работать так же быстро, как Vim.

Поэтому я в основном учился Vim-in-Emacs. Какие функции Vim мне не хватает?

Ответ 1

Я обычный пользователь vim, но не пользователь emacs и не использовал vimpulse, чтобы подтвердить это.

Но просматривая приведенный ниже код vimpulse, я не вижу упоминания текстовых объектов.

http://www.emacswiki.org/cgi-bin/wiki/vimpulse.el

Vim представил некоторые очень полезные идиомы для выбора и движения, которые не находятся в регулярном vi

  • cat "обрезать тег" для тегов xml/html
  • diw 'удалить в слове'
  • di( di" удалите текст в "" () и т.д.

в vim help см. :he текстовые объекты для большего.

Ответ 2

К сожалению, ни один режим не может заставить Emacs работать так же быстро, как Vim.

Если вы имеете в виду, что время запуска emacs неудовлетворительное, вы можете резко сократить его, открыв сеанс emacs, и используйте gnuclient/emacsclient, когда вам нужно отредактировать файл.

http://www.emacswiki.org/emacs/GnuClient

Ответ 3

Одна функция vi, которую я пропускаю в emacs, - это команда . (точка), которая повторяет последнее редактирование. Существует dot-mode.el, который реализует C-., чтобы имитировать это, но это не всегда срабатывало для меня (я не владею elisp, чтобы понять, почему).

Даже гадюка не выполняет эту команду точно так же, как это делает vi (последний раз, когда я проверил), и даже если это произойдет, я не думаю, что для меня достаточно использовать viper.

Ответ 4

Чтобы получить полный список того, что vimpulse может отсутствовать, введите

: helpgrep не в Vi

Ниже перечислены все функции справки, которые не совместимы с vi.

Theres около 700 матчей.

Конечно, будет много дублированных функций

Ответ 5

Движение по всему миру - в Vi вы всегда можете перемещаться с использованием тех же ярлыков, независимо от того, находитесь ли вы в списке каталогов, файле справки, файле только для записи или что-то, что вам разрешено редактировать.

Правильное визуальное и удаленное поведение - очень похоже на маркировку emacs, но идиоматически другое, так что пользователю Vi нужно переучиваться. Если вы уже привыкли к маркировке emacs, вы ничего не теряете.

Правильное поведение побега - должно отменить все другие модальные действия и вернуть вас в командный режим. Опять же, если вам комфортно в emacs, вы, вероятно, привыкли иметь модальные входы и так далее.

Очевидные каштаны о том, что Vi развертывается на каждой системе nix в мире (пуристы Gentoo меня исправляют?) - в любом случае, это не очень сильный аргумент.

Это те, которые возникли во время моего использования emacs + viper.

Ответ 6

Макросы Vim, похоже, не работают с viper/vimpulse:

Макросы Vim не работают при использовании viper + vimpulse в Emacs

(Btw, функция killer emacs, которая меня волнует vim/vimpulse, заключается в том, что разные кадры могут редактировать один и тот же файл. Это похоже на разделение, где две части могут быть в разных окнах. Если кто-то знает, как это сделать в vim, вы были бы моим героем.)

Ответ 7

Инкрементальный поиск с использованием/и? отсутствует.

Ответ 8

Будучи любителем emacs как ОС и vi в качестве модели ввода, естественно, я хотел любить гадюку. Однако в течение двух секунд после его использования мне пришлось отказаться от него: viper не поддерживает C- [в качестве замены escape-клавиши), что является важным ярлыком для наиболее часто используемой команды в vi.