Vim 7.3正式版:新功能介绍(附视频、中文帮助文件)

2010年8月15日,超级经典的文本编辑器 Vim(官网介绍) 发布了 7.3 正式版。本文试对Vim 7.3的一些特性进行分析和直观介绍。欢迎Vim爱好者补充指正。
gvim: text editor

1. Vim 7.3 新特性总体介绍

1.1 Vim 7.3 下载

gVim 7.3 Windows直接下载:http://ftp.vim.org/pub/vim/pc/gvim73.exe
更多下载:http://www.vim.org/download.php

1.2 升级安装注意事项

– 安装程序会自动卸载旧版Vim:如果你不放心,也可暂不卸载。
– 安装程序会询问是否保留vimfiles:当然要保留!

更新:中文帮助文件

Vim 7.3 的中文帮助文件已经发布,下载、使用如下:
– 下载:链接
– 解压到合适路径,如 d:\soft\Vim\vimfiles\doc\
– 更新帮助文件的tags,如::helptags d:\soft\Vim\vimfiles\doc\
– 测试新特性的中文帮助,如 :h ‘rnu’@cn

1.3 官方重点强调的新特性:

The biggest additions since 7.2:
– Persistent undo, undo for reload
– Blowfish encryption, also encrypt the swap file
– Conceal text (note: since 7.3a ‘conc’ was renamed to ‘cole’)
– Lua interface
– Python 3 interface

1.4 更多新特性

请在安装新版Vim后,运行 :ver 查看。

2. 隐藏文字(Conceal text)

Vim支持语法高亮,有的语法高亮需要一些额外的标注符,它们并不是文本内容的一部分。比如用VOoM实现带折叠的双栏树状文本管理时,需要用 {{{1、{{{2 这样的符号表示标题级别。这些额外的标注符,最好比较低调。比如,上文就采用了零宽断言(:h zero-width)或contain来区分标注符,然后用link 到 ignore(文字前景色=背景色)的方式来“不显示”。但这里的不显示,只是一种前背景同色的障眼法。相比之下,Vim 7.3的conceal text具备了更强大的功能;某种程度上,相当于inline folding。

2.1 conceal text 功能介绍

Conceal text,直译为“隐藏文字”。不过,译为“可隐藏文字”更符合原意。因为,它的最终效果——是否隐藏、如何隐藏——取决于如下属性/参数:

① syn命令的conceal参数
语句:sy match test_conceal “(善用佳软.*)” conceal
表示:括号内以善用佳软开头的字符串,命名为 test_conceal 组,具备了conceal属性。
更多参见::h conceal

② conceallevel(简称cole)选项值
具备conceal属性的字符串,并不一定是隐藏的。其具体表现取决于conceallevel的值。
☆ 0:默认值,显示。 因此,只设定conceal,并没有任何隐藏效果。
☆ 1:短线高亮。 匹配的字符串缩略显示为一个“-”符号(取决于listchars设定),并采用conceal组的高亮方案。
☆ 2:不显示,除非定义了cchar变量。 举个例子就明白了,如下语句
:syntax match Entity “&”?conceal cchar=&
可以把实体字符显示为原字符,更易于阅读。
☆ 3:完全不显示。
更多参见::h cole

③ concealcursor(简称cocu)参数
该值默认为空,效果就是无论如何隐藏,当光标位于该行时,conceal文字仍会显示。
如果想取消此效果,可设定相应值:n v i c。vim帮助文件中的设定值为nc。
更多参见::h cocu

2.2 conceal text 应用举例

上面的文字已经隐含了两个例子:
– 任何额外标记符的隐藏,如Voom中的 {{{1。还可扩展到vim的帮助文件、vimwiki……
– html源代码中,实体字符的还原显示。

我能想到的例子:
– 用来背单词。比如把英文单词后面的所有释义设为隐藏;光标移在该行时,再显示释义。
– txt格式的读书笔记:参见下面的视频
隐藏 xml/html 标签,只显示文字。示例:

1、如下内容保存为 d:\1.vim
sy match tag_conceal “<.\{-}>” conceal
se cole=3
2、打开html文件,再 :so d:\1.vim ,成功:所有html tag标签隐藏,只显示文字。
3、副作用是原html高亮失效,或许通过其他conclude, transparent参数能控制,但无精力/兴趣继续研究。

3. 相对行号(’relativenumber’ ‘rnu’)

以前,输入 :set nu 会显示行号;现在,输入 :set rnu 会显示相对行号。
所谓相对行号,就是光标所在行为第0行,然后,向上向下分别1、2、3……行标示。
其主要用途,可方便计算移动距离。
但由于翻页/滚屏时,当前行会移动,所以,相对行号只能在一屏内使用。
操作方法:
:set rnu
:set nornu
(nu与rnu不能同时使用)

更多说明::h rnu

4. 彩色列(colorcolumn)

例1:
:set cc=10,20,30
表示把第10、20、30列,进行高亮。

例2:
:set cc=-20,+10,120
表示把 textwidth-20、textwidth+10、第120列,进行高亮。

例3:
:hi colorcolumn guibg=lightgreen
定义高亮列为亮绿色。

功能说明:
– cc列标可以是绝对值,也可以是相对值,如例2所示。
– 会降低屏幕刷新速度。
– 对换行、中文,可能会不连续。

使用说明:
– 我觉得colorcolumn有一个最实用的功能,set cc=81,可以提醒自己写得代码别超过80列 (by ankyhe)

5. 持久性撤销 (更新)

功能介绍:
Vim此前的撤销(u: undo)功能,与大多数软件一样,局限于本次打开文件后所做的编辑。而Vim 7.3新增的持久性撤销(persistence undo),即使文件多次关闭又重新打开编辑,所有的修改都可以u还原回去(当然不能超过’undolevel’的限制)。

相关参数:
– :set undofile。 undofile(udf),缺省关闭,局部于缓冲区。设定后,Vim 在把缓冲区写入文件时,自动保存撤销历史到撤销文件。读入文件到缓冲区时,自动恢复撤销历史。
– ‘undolevels'(‘ul’):可以撤销的最大改变次数。缺省为100或1000。例 set ul=500。
– 指定 undodir。’undodir’指定撤销文件存放的目录。默认是当前目录,为全局变量。 undodir可以是目录名列表,以逗号分隔,格式参见 backupdir。但是,在写入时,会使用第一个存在的目录。因为 “.” 总是可用, 所以”.” 之后的目录不会用来写入。在读取修改历史时,会查找所有的项目来寻找对应的撤销文件,并使用第一个找到的撤销文件。如果该文件不可读,报错,但不再继续查找。

关于撤销文件:
文件名:”.” 代表文件所在的目录。此时,”file.txt” 对应的撤销文件名是 “.file.txt.un~”。如使用其他目录,撤销文件名是被编辑文件的完整路径,但路径分隔符以 “%”代替。
文件保护:撤销树文件中会包含这个文件内容的hash值,这样当一个文件有了撤销树文件后,如果它被其他程序编辑过,Vim会忽略撤销树文件,而不会因此让撤销使文件乱掉。
不会自动删除: 目前Vim只会去创建撤销树文件,而永远不会去删除它们,需要手动删除。因此,我只好把它们放到自己的tmpfs临时目录中,关机自动清除好了。

原有命令的增强:earlier和:later:
这两个命令也增加了一个单位:f——写入次数。比如说,我打开了一个配置文件,编辑N久,保存并测试后不满意,想恢复到原来的样子。怎么办呢?以前我会一直按着u键直到Vim告诉我不能撤销了,或者用备份文件(*~)来覆盖当前文件。现在可以使用命令:earlier 1f直接恢复到上次写入时了。

如何只对某些类型的文件启用undofile:
-通过 BufReadPre autocmd 方式进行设定。
-使用现成的 undofile.vim 脚本。

6. +cursorbind

在比较文件的时候,有个scrollbind功能,可以让被比较的文件同步滚动。但是,在之前的版本中,光标经常并不在同一行。从一个窗口跳转到另一个窗口时,我经常找不到光标的位置了。。。现在好了,有了这个特性,光标的位置也同步了。

7. 是否升级到Vim 7.3的考虑

收益:
– 客观上,提供了新特性;
– 主观上,需要判断这些新特性是否是自己所需要的。

成本:
– 下载、升级;
– 修改gvim路径,从vim72改为vim73。比如:TC中F4编辑器的设定;再比如win+r某些快捷方式的属性(“D:\soft\Vim\vim73\gvim.exe -p –remote-tab-silent f:\now\now\now.htm”)。更好的设置方式是把gvim.exe所在目录写入path变量,在引用时不加路径,直接写为gvim.exe(可以带参数)。
– python兼容性问题。vim7.2对应python2.6,而vim7.3默认需要python2.7,如果某些扩展需要python支持,则需要升级python。

我的建议:
总有一款程序让你如此信任,而随着它同步升级。对我而言,Vim就是如此。

附:视频演示-Vim 7.3 新特性之Conceal text、rnu、cc

用Wink录制的flash演示:492×451, 100+KB.
如无法查看,请检查浏览器设置,或在这里下载附件。

附:文章更新历史

2012-06-07:补充 隐藏html标签。
2010-08-16:更新至 vim 7.3 正式版;补充 undofile.vim 脚本;补充中文帮助
2010-08-01:初稿。
鸣谢:依云ankyhe、yeskky等。

善用Wink,将电脑操作录屏为flash (更新图片)

欢迎中海油的朋友选用Wink录制教程!

Wink 是一款非常优秀的免费录屏软件,尤其适合制作计算机操作教程。它在国外备受推崇,但国内应用较少少。Wink免费、小巧(3MB)、可同期或事后加入声音、可加入暂停及跳转按钮、添加注释,并且生成的 flash 文件比其他软件小很多。本文介绍wink的基本功能,并分享笔者使用 wink 的经验。

Wink:主页主页(中文) | 官方下载

1. 什么情况下需要并选择 wink ?

简言之,Wink 并不是每个人的必需软件,它只适合“软件教程制作者”,尤其在制作以录屏、演示为主的软件教程时。
为什么要制作教程呢?因为分享知识既是一种价值,也是一项乐趣。一篇教程需要制作人投入较多精力,但可以帮助更多人解决问题、提高效率。正是”辛苦我一个,幸福更多人“。
为什么教程要录屏?这是因为对复杂的软件操作,wink 录制的 flash 不仅比“文字+截屏”更直观,还能加入注释、声音、暂停、跳转,读者非常易于解释。

在多款 免费录屏软件 中,善用佳软推崇 Wink 的主要原因是:
– 软件极小巧:安装文件不到3MB;安装后约6MB,如果除去素材、示例、语言文件的话,则体积更小。
– 完全免费:个人使用、商用均免费(freeware for business or personal use)
– 录制结果极小巧:可录制为flash,不仅方便播放,并且体积小巧——不仅比其他格式(如avi)小,并且比其他录屏软件(包括商业软件)生成的flash可以小很多。原因在于Wink支持手工关键帧录制,这样从源头做到了最高程度的精简。
– 强大的编辑功能:删除不用的帧,加按钮/注释,加录(也可同时录制)声音。

2. wink简介

类别:屏幕录制、教程制作
性质:免费软件(允许商用)、国外软件(有中文语言包,牡蛎制作)
其他:V2.0,安装文件2.8M;安装后6M(多为素材、示例、语言文件)
介绍1(华军):Wink是一款免费且内建多国语言的屏幕抓取软件。可输出成数种不同的教学文件格式。例如:Flash动画文件、EXE可运行文件、HTML网页文件、PDF文件。让大家不管是在网页或计算机上都能看到你精心制作的教学文件。如果是发布成网页模式的,更可以以JPG、PNG、GIF等图片格式来做发布,让网页开启的速度可以提升。其他更支持BMP以及TIFF图片格式,让所撷取下来的图片能有更多的用途。当然也可以让我们们的教学档看起来更专业点,除了静态的网页发布功能外,还可以发布成PDF文档档。甚至是含有动态效果的SWF动画档或是EXE可运行档。让你的教学档能更完善,也让更多人能够更容易了解教学档的内容。(善用佳软补:Wink v2.0支持录音)
Wink介绍2(官网):① 功能:免费软件、跨平台、可录音、可插入图片BMP/JPG/PNG/TIFF/GIF、多界面语言(简体中文)、多输出格式(Macromedia Flash, EXE, PDF, PostScript, HTML或图片)、基于鼠标或键盘的智能捕捉、定时捕捉、文件小质量好。② 工具:导航按钮、图标可定制、可加注释文字和图形、可拖放、导出、压缩文件到最小/不压缩则能由第三方软件编辑。

3. Wink 下载安装与基本使用教程

3.1 Wink 下载安装

关于优秀软件的下载,善用佳软的第一推荐是官方网站(而非软件下载站或某些下载工具的服务器)。原因有二:最新版(稳定,bug及时修复)、原始版(安全,未被捆绑)。  下载 Wink,请在 官方下载页面 找一个下载点。
如果官网不能访问,可在国内可信的镜像下载,比如 新浪PConline,或其他你信任的站点下载。

官方下载后得到 wink20-1060.zip,约 3.2 MB。解压得到 wink20.exe,运行即可安装。安装后占用空间约 9MB。运行安装目录的 Wink.exe,可以看到软件界面并不复杂。确实,用起来也很简单。

3.2 切换为中文界面

如果你想用中文界面,请点击菜单:File→Chose language→Simlified Chinese,然后按提示,重启Wink就行了。

3.3 按照向导进行录制

要进行录屏,就象多数软件一样,需要先“新建”一个项目。推荐使用快捷键 Ctrl+N 。也可以使用 菜单→文件→新建,或 工具栏“新建”按钮。
然后,Wink 会弹出“新项目向导”,帮你开始录屏之旅。

新项目向导-第1步

新项目向导第1步,主要是进行如下设定:
wink image
① “开始捕捉”:默认是选中的,当然要选中。
② “录音”:强烈建议不选。理由1:很多教程不需要声音,不录制声音可以极为明显的缩小生成的文件。理由2:如果需要声音,也可以在录完之后,加在每一帧上,这样一来精确,二来便于修改。
③ “隐藏wink窗口”:建议选中。具体有什么用?试一下就知道了。没错,就是把wink主窗口隐藏起来,这样便于接下来选择“录制范围”。
④ “录制范围”:可以是全屏、窗口、自定义矩形、预定义的矩形(如800×600, 400×300……)。善用佳软建议选“窗口”,然后点击“选择”按钮,移动光标,wink就可以识别窗口了。这样自动选取的窗体边缘很精确,不会带有白边,不会导致多/少几个像素。当然,选择窗口后,可以拖动绿框的四边进行手工调节;或直接修改“区域”的座标值。
⑤ “捕捉速度”:我一般用默认。实际上,这个值在“定时捕捉”状态时生效,而善用佳软认为使用wink是不应该使用这种模式的,否则就是放弃了wink的优点而用它的缺点。详见下文。
⑥ “动作捕捉”:建议最多选取“鼠标”,而不选按键。因为如果按一次键则截一次屏,尤其在输入文字时,会导致录制文件偏大。和上面一样,这个设定是“动作捕捉”时起作用的。

新项目向导-第2步

新项目向导第2步,并不需要进行任何设置,就是一个快捷键确认。这些热键是可以自定义的,方法为:菜单→文件→参数设置。

这里有三个键:
① 手工捕捉:手工按下此键,wink就捕捉一帧。这是善用佳软用得最多的一个键,也是wink精华所在。正是有了它,才使得wink录制的flash比任何软件,包括最强大的商业软件都小很多。简言之,它让用户决定什么时候才捕捉屏幕。这就是“手动档”比自动档更高效。只有这样,才能仅录制“必要”的屏幕变化,省略不必要的,实现录制文件最小化。
② 定时捕捉:按下这个键,则wink开始定时捕捉(译为自动捕捉更准确),也就是上面设定的“4帧/秒”;再按一次,则停止自动捕捉。自动捕捉是最浪费资源的方式,也是最不wink化的方式。因为无论屏幕是否变化,它都要记录一帧,相当于记录了垃圾数据。警告:这种模式运行十几分钟,就可能导致占用资源过多,计算机失去响应!所以,定时捕捉是不得已而为之,慎用,并且定时捕捉的时间尽可能短。
③ 动作捕捉:也就是说,按下此键后,wink会根据上面设定的键盘、鼠标动作,开始/停止捕捉。我录制的flash基本上只用手工捕捉,并且习惯之后,很容易判断什么时候该按下Pause键,这样形成的文件体积极小!当然,也可以用鼠标动作捕捉,再通过编辑删除多余帧。

最后,点“缩小到托盘”,wink就待命捕捉了。也就是说,根据你按下上述的三个键,进行不同的捕捉。

3.4 完成录屏

当需要的内容都录制完成后,到系统托盘点一下wink的弹出菜单,“结束捕捉”就好了(期待新版本加入快捷键支持)。接下来,就可以编辑、输出了。

4. 编辑wink录制内容

如果对录屏很有信心,或只为了自己日后参考,则可以不进行编辑。但是,如果准备将结果进行公开发布,则编辑工作和录制一样重要,甚至更重要。

4.1 编辑的目标

善用佳软看来,编辑工作有两个目标:表达更清晰;flash尽可能小。
image of wink

4.2 wink编辑的一般原则

这些内容是xbeta的经验之谈,希望大家能认真阅读,也欢迎指正补充。只有了解原则,也就是“什么情况下应该做什么”,才能“使用软件”。否则,只知道软件有什么功能,那往往是“被软件所用”。以下部分稍后完成。
4.2.1 删除多余帧,
4.2.2 让光标连贯
4.2.3 加入必要的说明
4.2.4 设定适当的延时
4.2.5 加入必要的交互
4.2.6 是否需要封面/封底?
4.3 一些技巧
透明图标
导航
复制页
继续录制

4.3 如何补充帧或合并两个项目

网友问:用了您推荐的wink录屏,感觉很不错,只是个地方很不爽,我是用的手动截屏,结束后发现某个地方少截了几次,可是没有找到补充帧或者合并两个项目的功能啊,怎么办?全部重新录制?
答:不需要从零开始重新录制。通常来说,可以新开一个Wink项目,把遗漏的帧录下来。然后,把这些帧复制(在帧列表窗口中选中,ctrl+c)到原项目的合适位置即可。Wink不能合并项目,但可通过对帧全选、复制、粘贴方法的变通处理。

5. 将录制结果输出flash

录制完成后,为了安全起见,强烈建议先把录制内容保存为.wnk源文件。一来防止数据丢失,二来便于日后再利用。软件操作过程中不断存盘,是善用佳软推荐的简易安全之道。
Wink可以把录制结果输出为flash、htm+图片、pdf等格式,但我们最常用的是输出为flash。其操作步骤如下:

【步骤1】F3:项目设置

在输出之前,首先要对当前的Wink项目进行设置。热键F3。推荐的设置内容如下图所示:
[image:Wink F3 设置]
– 输出文件名:略。
– 输出文件类型:这是一个关键点!
[image: Wink输出类型]
如果要发布在网页上,并且追求精益求精,则推荐“Flash(swf)”格式,这样在生成swf文件时,会采取wink独有的一种压缩技术,产生的swf文件体积最小。但缺点是,浏览器(或flash播放器)在判断flash尺寸时,会误判断为原尺寸的1/4。这就是为什么直接播放wink录制的flash会“缩小”的原因。正确的做法是,在html源代码中需要指明flash尺寸——看一下wink输出后的html文件,会有如下内容。其中的width=”503″ height=”405″就是尺寸。

<EMBED SRC=”pdfcreator-install.swf” WIDTH=503 HEIGHT=405 quality=low loop=false wmode=transparent TYPE=”application/x-shockwave-flash” PLUGINSPAGE=”http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash”></EMBED>

如果你不太了解html源代码,或无法进行源代码编辑(比如flash发于论坛),建议你选择“Uncompressed Macromedia Flash (*.swf)”,即未压缩的、标准的flash文件,这样体积稍大,但通用性更好。
至于生成windows可执行文件exe格式,我并不推荐。因为对方未装flash的情况极少,而exe容易引发安全问题或令对方有安全担忧。
– 其他选项,建议按上图设定。其中,选用调色板,可减小flash文件体积。

【步骤2】F7:渲染

设定完成后,就可以渲染了。渲染过程就是生成flash(以及对应的html、js文件)的过程。
如果设定了“使用调色板”,则第一次渲染时,会提示『首次渲染时,需要执行“项目 – 编辑调色板”,为输出选择调色板』。点击“确定”,会弹出“编辑调色板”对话框,点击“新建”按钮,接受默认设置(下图)即可。有了调色板后,开始渲染(如果没有自动开始,再按F7),渲染的结果是,生成了3个文件(wink v2.0 b1060):xx.htm, xx.swf, xx.js。
[image: Wink调色板]

【步骤3】F8:查看

输出结果后,你可以用浏览器查看结果,是否满意。在Wink中按F8,则可以方便地用默认浏览器打开htm,再调用swf,播放动画。通过查看,您可以发现一些不足,再返回来修改文件。

6. 技巧提示

一个好的录制作品,应体积小、解释清晰、无多余操作。以下技巧提示帮您达成目标。(本部分待扩展)

  1. 减小体积:录制时,将必要窗口尽可能拉小;删除多余的关键帧;输出flash时,用调色板功能。
  2. 控制播放时间,更易理解:某些需要注意或仔细观看的帧,加入延时(1秒)必要时加入“下一帧”按钮,让用户手工点到下一帧(相当于暂停)
    image of wink
  3. 必要时可加入文字说明(应伴以上述时间控制)。目前 Wink 的文字注释功能不支持中文自动换行。且直接编辑时需要注意半个字符的问题,但出现乱码也不用怕,按下del或backspace再删除半个字符就正常了。
  4. 关于声音:一般不建议全程录音,这样体积太大,也没必要。就算必要,也不便于编辑。如果一定要加声音,我建议录屏、优化屏幕操作后,最后配音。方法是,选中一帧,在工具栏中点击加入声音按钮,如图。这样,只有播放完声音才会切到下一帧。
  5. 重要:关于导出flash的尺寸。wink采用了特殊的压缩格式,这样文件体积较小。但副作用是播放器无法判断视频的尺寸。也就是说,如果直接打开flash文件100%显示,则实际是录屏大小的1/4,无法调整到原分辨率。因此,发布动画时,请保留生成的htm文件(或引用其代码),其中规定了原尺寸。
  6. 导出格式:除了导出flash,也可以导出为网页(html+图片,图片可指定为png/jpg等格式)、pdf。参见沧海一书生的 Wink 心得

7. Wink 作品示例

  1. 杨氏电脑系列教程
  2. 介绍excel的Vlookup函数 点这里观看
  3. 介绍软件Concept Draw点这里观看
  4. 介绍TC+插件来安全删除(粉碎)文件http://www.newsmth.net/att.php?s.837.22130.596.htm
  5. 用Win+run功能最方便的快捷键、Audacity录单等http://xbeta.ys168.com
    “wink录制的教程”下。
  6. 其他示例http://www.drexplain.com/live_demo/http://www.stat.lsu.edu/exst2000/demos/demos.html

相关链接:
演示教学的好帮手——Wink软件|刘占礼
记录屏幕操作Wink轻松搞|孤舟
台湾网友的介绍和应用
善用Wink,将电脑操作录屏为flash

附录:文章更新历史

2010-04-08:应读者要求,把所有墙外图片转至墙内。
2010-03-14:如何补充帧。
2009-10-16:更新大部分文字。
2009-01-13:补充一些失效图片,补充F3/F7步骤文字。
2008-06-02:重要更新:加入中文主页;加入应用原则、技巧。主体部分几乎重写。
2006/2007:多次更新,完善文字,加入示例
2006-05-21:初稿>