昨天在LinuxToy上看到Vim 7.3b放出的消息,看到增加了Python3支持和持久性撒消(persistence undo)功能,于是忍不住从ftp.vim.org下了源码,编译到临时目录中体验了一下,觉得非常不错,遂卸载了前不久才编译安装的带有所有已发布补丁的Vim7.2,打上我自己的修改补丁,正式安装了。
持久性撒消
持久性撒消(persistence undo)是经常按u的人的福音,它把撒消树保存到文件中,从而即使文件被关闭再打开多次,就好像其间没有关闭过一样,所有的修改都可以u回去(当然不能超过'undolevel'
的限制)。
要使用此功能,需要设置'undofile'
选项。'undodir'
指定撒消树保存的目录,默认是当前目录。会扩展'~',但是对于不存在的目录不会自动建立,这点有点不方便。文件名是所编辑的文件完整路径,(在Linux上)其中的'/'被换成了'%'。
撒消树文件中会包含这个文件内容的hash值,这样当一个文件有了撒消树文件后,如果它被其他程序编辑过,Vim会忽略撒消树文件,而不会因此让撒消使文件乱掉。
命令:earlier
和:later
也增加了一个单位:f——写入写入次数。比如说,我打开了一个配置文件,编辑N久,保存并测试后不满意,想恢复到原来的样子。怎么办呢?以前我会一直按着u键直到Vim告诉我不能撒消了,或者用备份文件(*~)来覆盖当前文件。现在可以使用命令:earlier 1f直接恢复到上次写入时了。
目前Vim只会去创建撒消树文件,而永远不会去删除它们,需要手动删除。因此,我只好把它们放到自己的tmpfs临时目录中,关机自动清除好了。
Python3接口支持
说实话,这个很令我失望。我是一直希望Vim支持Python3的,但是Python2也需要支持,因为有好些插件会用到的。所以,我同时编译了Python2和Python3特性进去,结果测试时Vim告诉我在同一会话中只能使用其中之一:
E999: Python: Cannot use :py and :py3 in one session
竟然错误号是999。。。
看来启动过程中就有某个脚本调用过:py了。看来我是没希望在Vim中用python3了。。。
相对行号
这个曾经有插件(效率很低地)实现过,什么意思应该很好理解,选项名称为'rnu',和'nu'(显示行号)不相容的。放图:
+cursorbind
在比较文件的时候,有个scrollbind功能,可以让被比较的文件同步滚动。但是,在之前的版本中,光标经常并不在同一行。从一个窗口跳转到另一个窗口时,我经常找不到光标的位置了。。。现在好了,有了这个特性,光标的位置也同步了。
PS:这个新特性我太激动了,所以没有看完文档(囧。。。),是我自己对照:help version-7.3
中没有提到:ver
命令的输出结果发现的哦~~
其它
其它新特性还有:
- +conceal隐藏文字
- 增加强度更高的Blowfish加密
- lua接口
这些我目前还不甚关心,所以没太关注。不过conceal text的确让帮助文件整洁漂亮了:-)。