资讯

展开

比Vi 编辑器增强版Vim更牛的Vim9开始研发,期待

作者:快盘下载 人气:

Vim编辑器也就是大家常见的linux中默认集成的vi编辑器,当然在linux中也可以使用的。


比Vi 编辑器增强版Vim更牛的Vim9开始研发,期待

Bram Moolenaar 表示,Vim9 是 Vim 的一个实验性分支,旨在探索使 Vim 脚本更好且更快执行的方式。这也是除“弹出窗口(Popup Windows)”和“文本属性(Text Properties)”之外,开发者呼声最大的功能需求。

为了能更快执行 Vim 脚本,Bram 思考了很多并得出如下结论:当前调用和执行函数的方式(带有用于参数和局部变量的字典)永远不会很快。如果能够使速度快两倍,那么 Vim 的性能将会有明显的改进。毕竟调用和执行每一行函数的开销十分高。

Bram 认为只有通过一种与旧方法类似但属性不一样的新方法来定义函数才能使速度变快:

参数只能通过名称(name)使用,而不能通过 a: dictionary 或 a:000 列表的形式使用 局部变量在 l: dictionary 中不可用 解决一些影响速度的问题,例如异常处理细节

对于上面的思路,Bram 提供了概念验证代码。到目前为止,对于一个简单的运行循环的 Vim 脚本,Vim 需要五秒钟的时间,Vim9 则可以在 0.07 秒内运行它,与 Lua 脚本的时间相同,并且比 Python 更快。

  let sum = 0
  for i in range(1, 2999999)
    let sum += i
  endfor

Vim old 5.018541 Python 0.369598 Lua 0.078817 Vim new 0.073595

在更相关的代码片段中,Vim9 可以在 0.19 秒内运行脚本,而 Vim 的时间是 0.85 秒。

 let totallen = 0
  for i in range(1, 100000)
    call setline(i, '    ' .. getline(i))
    let totallen += len(getline(i))
  endfor

Vim old 0.853752 Python 0.304584 Lua 0.286573 Vim new 0.190276

关于 Vim9 的具体实现思路和细节请查看其 GitHub 仓库,这些工作经过验证有效后会被合并到 Vim 中。

howtime in sec
howtime in sec

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!