Vim 8.0 发布

发布日期:作者:

Vim 8.0 is released image

The Vim 编辑器 发布了十年来的第一个主要版本,Vim 8.0。

此版本包含许多小功能、大量错误修复以及以下主要亮点

异步 I/O 支持,通道

Vim 现在可以在后台与其他进程交换消息。这使得服务器能够在后台执行工作并将结果发送回 Vim 成为可能。

与通道密切相关的是 JSON 支持。JSON 受到广泛支持,可以轻松地用于进程间通信,允许使用任何语言编写服务器。使用的函数是 |json_encode()| 和 |json_decode()|。

这使得构建使用任何语言编写并在单独进程中运行的非常复杂的插件成为可能。

作业

Vim 现在可以启动作业、与之通信并停止它。这对于运行完成进程、语法检查等非常有用。通道用于与作业通信。作业还可以从缓冲区或文件读取或写入。

计时器

计时器也是异步的。它们可以触发一次或多次,并调用函数来执行任何工作。例如

let tempTimer = timer_start(4000, 'CheckTemp')

这将在 4 秒(4000 毫秒)后调用 CheckTemp() 函数。

部分

Vim 已经有了 Funcref,一个函数的引用。部分也引用一个函数,此外还绑定参数和/或字典。这对通道和计时器的回调特别有用。例如,对于上面的计时器示例,要将参数传递给函数

let tempTimer = timer_start(4000, function('CheckTemp', ['out']))

这将在 4 秒后调用 CheckTemp(‘out’) 函数。

Lambda 和闭包

已添加创建函数的简短方法:{args -> expr}。这对诸如 filter()map() 之类的函数很有用,这些函数现在也接受函数参数。示例

:call filter(mylist, {idx, val -> val > 20})

Lambda 可以使用在定义 Lambda 的作用域中定义的变量。这通常称为 |闭包|。

用户定义的函数也可以通过添加“闭包”参数成为闭包

:func-closure|

软件包

插件不断增长,而且可用的插件比以往任何时候都多。为了使插件集合易于管理,已添加了软件包支持。这是一种获取一个或多个插件、将它们放到目录中并可能对其进行更新的便捷方法。Vim 将自动加载它们,或者仅在需要时加载它们。

新式测试

这是针对 Vim 开发人员的。到目前为止,为 Vim 编写测试并不容易。Vim 8 添加了断言函数和一个用于运行测试的框架。这使得编写测试并保持其更新变得更加简单。此外,还添加了一些专门用于测试的函数。

窗口 ID

以前,窗口只能通过其编号进行访问。每次打开、关闭或移动窗口时,该编号都会发生变化。现在,每个窗口都有一个唯一的 ID,因此它们很容易找到。

Viminfo 使用时间戳

以前,存储在 viminfo 中的信息是上次 Vim 在其中写入的任何信息。现在,时间戳用于始终保留最新的项目。

使用缩进换行

已添加 ‘breakindent’ 选项,以便能够在不更改缩进量的情况下换行。

Windows:DirectX 支持

这添加了 ‘renderoptions’ 选项,以允许在 MS-Windows 上切换 DirectX(DirectWrite)支持。

GTK+ 3 支持

GTK+ 3 GUI 的工作方式与 GTK+ 2 相同,只是它们之间几乎没有明显的技术差异。如果 2 和 3 都可用,配置仍然选择 GTK+ 2。

有关此版本和升级的更多信息,请访问官方 Vim 网站。

Eric L. Barnes photo

Eric 是 Laravel 新闻的创建者,自 2012 年以来一直在报道 Laravel。

归档于
Cube

Laravel 新闻稿

加入 40k+ 其他开发者,绝不错过新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成功能和对本地和生产环境的即时反馈进行 Tinker。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,来自 No Compromises 播客的两名经验丰富的开发人员,现在可以为您的 Laravel 项目雇用。⬧ 每月固定费率 7500 美元。 ⬧ 无冗长的销售流程。 ⬧ 无合同。 ⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,以保持您的应用程序新鲜。

Shift
Bacancy logo

Bacancy

让您的项目充满活力,只需每月 2500 美元,就能获得拥有 4-6 年经验的经验丰富的 Laravel 开发人员。获得 160 小时的专职专业知识和无风险的 15 天试用期。立即安排电话会议!

Bacancy
Lucky Media logo

Lucky Media

立即获得好运 - Laravel 开发的理想选择,拥有超过十年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 招聘网站

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一款 Laravel SaaS 启动工具包,它包含运行现代 SaaS 所需的所有功能。支付、精美结账、管理面板、用户仪表板、身份验证、现成组件、统计数据、博客、文档等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel、降低成本和加速创新的合作伙伴,助力企业取得成功

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包将评论添加到您的 Laravel 应用程序

阅读文章