时隔一年 vim 8.2 发布,新特性你怎么看?

    距推出 Vim 8.1 已经过去一年多了,Vim 8.2 也终于在近日发布了。对于喜欢使用vim文本编译器来开发的用户来说,这真是个好消息。



升级起源


    Vim 开发团队的成员作者bram表示,在去年的 VimConf 2018 做主题演讲之前,他向 Vim 插件开发者询问了他们对 Vim 的功能需求。其中““弹出窗口(Popup Windows)”和“文本属性(Text Properties)”这两项呼声最大。在经过一年多的努力之后,这两项功能终于加上了。必须得点个赞。


弹出窗口(Popup Windows)


    先来介绍这个功能,这是个新引入的概念,Vim 官网称,这是不小的努力。之前版本需要额外的逻辑,特别是更新屏幕的效率,和最新版本的差异比较大。


    此功能用于在正在编辑的窗口的最前方显示消息框、函数原型、代码片段以及其他信息等相关文本,而且可以快速打开和关闭,并且支持以多种方式突出显示。


    显示的位置也非常灵活,不需要告诉 Vim 具体在哪里显示,它们可以相对于文本定位在绝对位置或仅在屏幕中间。窗口的大小可以调整以适应文本。设置"zindex"值就能指定 popup window 在其他窗口前面,这些都是个大的进步。


文本属性(Text Properties)


    另一个重大功能文本属性用于处理语法高亮显示、高亮文本片段等特性,而不是使用基于模式的高亮显示。并且该特性可以用来代替基于模式的语法突出显示。


其他值得关注的新功能:


  •  "const"命令,用于声明一个不能改变的变量:

const TIMER_DELAY = 400


  • 用于方法调用的函数链

mylist->filter(filterexpr)->map(mapexpr)->sort()->join()


  • 通过指派 Heredoc 样式,可以轻松地将行列表指派给变量,而无需引用或 line continuation:

letlines =<< trim END  line one  line twoEND


小游戏 Killersheep


    Vim发布8.2版本,作者bram为了宣传新特性特意写了一个游戏插件叫做杀羊游戏,(喜羊羊这个可爱,你居然杀羊羊,哈哈哈)这个插件利用上了用上了vim新特性:悬浮窗口,音频支持,textprop等,游戏开始时一只只羊从右到左走出来还发出一声声咩咩叫,低栏一个大炮可以发射子弹杀掉羊,羊们也会时不时发子弹打你…打死羊或者自己会被打死时都会发出好可爱的叫声……



    bram一把年纪还非常搞怪,几十年如一日维护着一个开源软件没给自己带来啥好处,有时候还有一些人不服他的vim路线的霸道,准备另外搞个项目,所以他之前特意做了一个命令叫做smile,解释道Programmers are not always happy,Let’s smile。嘲笑他们。感觉Bram真的是一个老顽童,一个真正黑客,向开源精神致敬!



安装演示


Ubuntu 18.04编译安装Vim最新版本8.2

git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge --enable-gui=gtk2 --enable-cscope --prefix=/usr
./con
sudo make VIMRUNTIMEDIR=/usr/share/vim/vim82
sudo make install



    如果一切顺利就安装完了!!!执行版本查看命令:

vim --version



相关链接


详细更新内容请查看 :

https://www.vim.org/vim-8.2-released.php


小游戏在 GitHub 上开源了:

https://github.com/vim/killersheep


Vim 新版下载页面: 

www.vim.org/download.php


Vim 的详细介绍:

https://www.oschina.net/p/vim


推荐阅读

(点击标题可跳转阅读)

【24小时学通Linux内核】系列,想知道的都在这里

【Linux设备驱动】系列汇总,我写了什么?

经典资料强烈推荐 | 目录汇总 | 下载说明