Какие функции Vim отсутствуют в Emacs с Viper и Vimpulse? - PullRequest
21 голосов
/ 29 ноября 2008

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

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

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

Ответы [ 8 ]

15 голосов
/ 01 декабря 2008

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

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

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

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

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

в справке vim см. :he текстовые объекты для получения дополнительной информации.

8 голосов
/ 30 ноября 2008

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

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

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

4 голосов
/ 16 сентября 2009

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

: helpgrep не в Vi

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

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

Конечно, будет много дублирующихся функций

4 голосов
/ 19 декабря 2008

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

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

1 голос
/ 12 декабря 2009

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

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

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

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

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

0 голосов
/ 02 сентября 2009

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

0 голосов
/ 14 августа 2009

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

0 голосов
/ 29 декабря 2008

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

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

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

...