使用Viper和Vimpulse的Emacs中缺少哪些Vim功能?

What Vim features are missing in Emacs with Viper and Vimpulse?

Vim中缺少Emacs的重要功能,例如comint模式,并且没有可以替换它们的脚本/插件。

Vim相对于Emacs也有好处,例如模态编辑和通常更好的默认快捷方式。 但是,Viper模式让我两个都有。 Vimpulse还支持可视模式。
不幸的是,没有任何模式可以让Emacs像Vim一样快速地工作。

所以我主要学习了Vim-in-Emacs。 我错过了什么Vim功能?


我是普通的vim用户,但不是emacs用户,并且没有使用vimpulse来确认这一点。

但是浏览下面的vimpulse代码我没有提到文本对象。

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

Vim介绍了一些非常有用的习惯用于选择和移动,而不是常规的vi

  • 对于xml / html标签,cat'切割标签'
  • diw'删除字'
  • di( di"删除"" ()内的文字等

在vim帮助中查看:he文本对象以获取更多信息。


Unfortunately, no mode can make Emacs work as fast as Vim.

如果你的意思是emacs的启动时间很短,你可以通过永久打开emacs会话来大幅减少它,并在需要编辑文件时使用gnuclient / emacsclient。

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


要获得vimpulse可能遗漏的完整列表类型

:helpgrep不在Vi中

将列出不与vi兼容的帮助中的每个功能。

Theres大约700场比赛。

当然会有很多重复的功能


我在emacs中遗漏的一个vi功能是重复上次编辑的.(点)命令。有dot-mode.el实现了C-.来模拟这个但它并不总是对我有用(我不熟悉elisp来弄清楚原因)。

甚至viper也没有像vi那样完全执行这个命令(我上次检查过),即使它确实如此,我也不认为这对我开始使用viper是不够的。


Vi运动无处不在 - 无论您是在目录列表,帮助文件,只写文件还是允许编辑的内容中,您都可以使用相同的快捷方式进行导航。

正确的视觉和删除行为 - 非常类似于emacs标记但在惯用方面不同,因此Vi用户难以重新训练。如果你已经习惯了emacs标记你并没有真正遗漏任何东西。

正确的转义行为 - 应取消所有其他模态活动并返回命令模式。再说一遍,如果你对emacs感到满意,你可能习惯于使用模态输入等等。

关于Vi的明显栗子被部署在世界上的每个nix系统上(Gentoo纯粹主义者纠正了我?) - 无论如何我的眼中并不是一个非常强烈的争论。

这些是我在使用emacs + viper期间出现的那些。


作为操作系统和vi作为输入模型的emacs的爱好者,我自然想要爱v蛇。但是在使用它的两秒钟内我不得不放弃它:viper不支持C- [作为转义键的替代 - 这是vi中最常用命令的必要快捷方式。


使用/和?进行增量搜索不见了。


Vim宏似乎不适用于viper / vimpulse:

在Emacs中使用viper + vimpulse时,Vim宏不起作用

(顺便说一下,让我关心vim / vimpulse的杀手emacs功能是不同的帧可以编辑同一个文件。就像分开两个部分可以在不同的窗口中。如果有人知道如何在vim中完成,你是我的英雄。)