Emacs有一些重要的功能在Vim中丢失了,例如comint模式,也没有可以替代它们的脚本/插件。
Vim比Emacs更有优点,例如模态编辑和通常更好的默认快捷键。但是,Viper模式可以让我同时使用两者。 Vimpulse还启用了可视模式。 不幸的是,没有任何模式可以使Emacs像Vim那样快速运行。
所以我大多数时间都学习在Emacs中使用Vim。我错过了哪些Vim的功能呢?
Emacs有一些重要的功能在Vim中丢失了,例如comint模式,也没有可以替代它们的脚本/插件。
Vim比Emacs更有优点,例如模态编辑和通常更好的默认快捷键。但是,Viper模式可以让我同时使用两者。 Vimpulse还启用了可视模式。 不幸的是,没有任何模式可以使Emacs像Vim那样快速运行。
所以我大多数时间都学习在Emacs中使用Vim。我错过了哪些Vim的功能呢?
我是一个经常使用vim的用户,但不是emacs用户,也没有使用过vimpulse
来确认这一点。
但是在浏览下面的vimpulse代码时,我没有看到任何关于文本对象的提及。
http://www.emacswiki.org/cgi-bin/wiki/vimpulse.el
Vim引入了一些非常有用的选择和移动用法,这些用法在普通vi中并不存在
cat
用于剪切xml/html标记diw
'删除一个单词'di(
di"
删除""
、()
中的文本等在vim帮助中查看更多关于:he
文本对象的信息。
不幸的是,没有任何模式可以使Emacs像Vim一样快。
如果你指的是Emacs启动时间慢,你可以通过永久打开一个Emacs会话,并在需要编辑文件时使用gnuclient/emacsclient来大大缩短启动时间。
C-.
来模拟这个命令,但它并不总是对我有效(我不精通elisp,无法找出原因)。repeat-last-command
,其描述说:此命令类似于vi编辑器中的'.'命令。那是不正确的,因为vi中的'.'命令只重复上一次编辑,而repeat-last-command
会重复上一次执行的任何命令。 - prakash要获取vimpulse可能缺失的完整列表,请键入:helpgrep not in Vi
帮助文档中所有不兼容Vi的功能都将列出。
大约有700个匹配项。
当然,会有许多重复的功能。
Vi无处不在 - 在Vi中,您始终可以使用相同的快捷键进行导航,无论您是在目录列表、帮助文件、只写文件还是允许编辑的内容中。
正确的可视化和删除行为 - 与emacs标记非常相似,但习惯上不同,因此对于Vi用户来说重新训练可能有些困难。如果您已经习惯了emacs标记,那么您并没有错过什么。
正确的退出行为 - 应该取消所有其他模态活动并返回到命令模式。同样,如果您在emacs中感到舒适,您可能已经习惯了模态输入等。
关于Vi部署在世界上每个nix系统上的明显争议(Gentoo纯粹主义者请纠正我?)- 在我看来,这不是一个非常有力的论点。
这些是我在使用emacs+viper时注意到的问题。
Vim宏似乎无法与viper/vimpulse一起使用:
在Emacs中使用viper + vimpulse时,Vim宏无法工作
(顺便说一句,让我关心vim/vimpulse的杀手级emacs功能是不同的框架可以编辑同一个文件。这就像有一个分割,两个部分可以在不同的窗口中。如果有人知道如何在vim中实现这一点,你将成为我的英雄。)
vim
。 - intuited缺少使用 / 和 ? 的增量搜索功能。