Vim documentation: pi_spec
作者: Gustavo Niemeyer ~
译者: Willis
http://vimcdoc.sf.net
这是一个针对 rpm 规格文件的文件类型插件。
此 Vim 插件让你轻松更新 RPM 规格 (spec) 文件的更新记录段 (%changelog section)
的内容。如果该段还不存在,它可以为你新建段。如果你今天还没有更新,它会帮你建立
新的说明入口 (entry)。如果你还没有提供格式串 (|spec_chglog_format|),它会询问
你的 email 地址,然后自动为你提供该格式串。
1. 如何使用 |spec-how-to-use-it|
2. 自定义 |spec-customizing|
==============================================================================
1. 如何使用 *spec-how-to-use-it*
spec_chglog 插件提供如下映射:
:map <buffer> <LocalLeader>c <Plug>SpecChangelog
这意味着在规格文件里你可以通过按 |maplocalleader| 键 (缺省是 '\') 加 'c' 来执
行这个插件。如果你还没有设置 |spec_chglog_format|,此时插件会要求你提供 email
地址,编辑过程里会用到这个地址。
每次你运行此插件,它检查更新记录,看看最近的说明入口是否今天由你写入。如果是,
在此入口中插入新建更新记录,如果不是,它会建立一个新的更新记录入口。如果你打开
|spec_chglog_release_info|,它同时还会检查文件名,版本和发布版本是不是匹配。如
果你自己还没有更新该软件包的发布号的话。这个插件能够智能地询问你是否要这么做。
设置键盘映射 *spec-setting-a-map*
-------------
正如你应该已经知道的,可以设置键盘映射执行任何 Vim 命令 (对此而言,其实还有别
的)。如果你不喜欢缺省的映射 <LocalLeader>c,可以自己定义。下面说明在 .vimrc 文
件里如何作此设置。比如,要把本插件映射到 <F5> 键:
>
au FileType spec map <buffer> <F5> <Plug>SpecChangelog
<
备注: 本插件会尊重你的本人意愿,不会再次把它的缺省设置强加于你。
该命令只会在规格文件的缓冲区中定义这个映射。
==============================================================================
2. 自定义 *spec-customizing*
格式串 *spec_chglog_format*
-----------------
你可以轻松地定制自己的规格文件入口的样式。为此,只须在 .vimrc 文件中这样设置
"spec_chglog_format" 变量: >
let spec_chglog_format = "%a %b %d %Y My Name <my@email.com>"
<
注意 "%a %b %d %Y" 是最常用的格式。如果你不提供格式串,第一次运行 SpecChanglog
命令时,它会询问 email 地址,然后为你构造 |spec_chglog_format| 变量。这种方式
下,你只要提供 email 地址一次。
要知道可用的格式串选项,察看 strftime() 函数的 man 手册页。
何处插入新的更新记录 *spec_chglog_prepend*
-------------------------
本插件通常把新的 %changelog 更新记录 (注意: 不是入口本身) 加在现有的记录之后。
如果你设置了 spec_chglog_prepend 变量 >
let spec_chglog_prepend = 1
那么新记录将加在已有记录之前。
加入发布信息 *spec_chglog_release_info*
----------------------
如果你愿意,本插件自动在每个更新记录入口中加入发布信息。这么做的一个好处是能控
制软件包每次更改之后是否更新发布号。如果包的版本或发行号没有更新,它询问你是否
要这么做。要打开这个功能,在 .vimrc 中加入以下代码: >
let spec_chglog_release_info = 1
这样,更新记录入口的首个记录就会像这样: >
+ name-1.0-1cl
如果你不喜欢发布更新功能,也不想每次检测到旧的发布号时都回答 "No",可以关闭此
功能 >
let spec_chglog_never_increase_release = 1
一切顺利!!