7
28
2010
4

Vim7.3 beta体验手记

本文来自依云's Blog,转载请注明。

昨天在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的确让帮助文件整洁漂亮了:-)。

Category: Vim | Tags: vim | Read Count: 12042
善用佳软 说:
Aug 02, 2010 07:16:24 PM

对本文中持久性撒消与+cursorbind内容进行了署名转载,链接为 http://xbeta.info/vim73b.htm ,希望你能同意。

Avatar_small
依云 说:
Aug 18, 2010 10:23:28 PM

呵呵,只要遵守那个叫什么Creative Common的协议的转载都欢迎!

Dante 说:
Aug 19, 2010 12:42:03 AM

哈哈,相对行号那个功能相当不错啊~~
我把你的链接贴到博客里去啦~~

依云 说:
Aug 19, 2010 05:24:19 AM

好啊好啊,现在我的博客的读者越来越多了呵。我也要更勤地写出更好的博文来!其实对Vim7.3我后来有更多的发现的,懒了没写。。。比如strwidth()函数对于我们中文用户就非常不错。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com