1、支持异步 I/O 和通道channel
Vim 现在可以和后台的其它进程进行消息交互。这样就可以开发一个运行在后台的服务器,并将结果发回给 Vim,这种交互方式称之为通道channel。在通道中使用 JSON 传递消息,因此你可以用任何一种语言来开发后台服务器,只需要它支持 JSON 即可。通过支持这种技术可以实现一些功能非常复杂的插件。
Vim 现在也能启动一个任务,并与之通讯或停止它。比如说,可以启动一个用于自动补完、格式检查等功能的进程。在任务和 Vim 之间的通讯是通过通道完成的。
2、定时器
另外一个异步工作的是定时器timer,可以启动一个定时器并不断重复调用某个函数。比如:let tempTimer = timer-start(4000, 'CheckTemp')
3、Partial
Vim 已经有了一个 Funcref 功能,这是一个函数引用。partial 也是一个函数引用,但是它可以绑定参数或字典。这对于频道或定时器的回调很有用。 比如:let tempTimer = timer-start(4000, function('CheckTemp', ['out'])) 。
4、Lambda 和闭包
lambda 是创建函数最快的方式,比如:{args -> expr}。它对于 filter() 和 map() 很有用,而且还支持函数参数。如:call filter(mylist, {idx, val -> val > 20})。
lambda 可以使用定义 lambda 表达式范围内的变量,这常被称之为闭包closure。
5、插件包
插件越来越多了,为了更好的管理插件,因此支持了插件包的支持。
6、窗口 ID
以前 Vim 中的窗口只能通过数字编号来访问,当打开、关闭或移动窗口时,这个数字也随之而变。现在每个窗口都有了一个唯一的 ID,可以更方便的找到它们。
7、折行缩进
新增的 'breakindent' 选项可以保证在折行时维持缩进不变。
8、Windows:支持 DirectX
新增的 'renderoptions' 选项可以在 Windows 上切换到 DirectX (DirectWrite)引擎上。
9、支持 GTK+ 3
一般用户很难注意到 GTK+ 3 和 GTK+ 2 的区别。对这两者的配置仍然都支持。
使用说明:
8.0 不再支持的版本
1、16 位的 DOS、OS/2 和 Amiga 版本
2、32 位的 MS-DOS/Windows 95/98 的字符界面版
3、16 位的 MS-Windows 版本