*sign.txt* For Vim version 7.4. 最近更新: 2013年8月VIM 参考手册 作者: Gordon Prieur
Bram Moolenaar译者
: Willis http://vimcdoc.sf.net 特性: 标号支持 *sign-support* 1. 简介 |sign-intro| 2. 命令 |sign-commands|{Vi 没有这些功能}
{仅当编译时加入 |+signs| 特性才可用}
1. 简介 *sign-intro* *signs*
当调试器或者其他集成开发环境的工具控制编辑器时,它需要通过给出某些特定的高亮以 给用户一些关于文件有用信息的反馈。一个例子是调试器在左边的列中给出图标来表示这 里有一个断点。另一个可能的例子是用一个箭头代表当前程序计数器 PC 的位置。标号特 性既包括在窗口的左边放置标号或者图标的支持,也包括该行使用的高亮的定义。显示图 像化的标号可能只适用于 gvim (虽然 Sun Microsystem 的 dtterm 也支持,它是我所知 的唯一支持的终端模拟器)。但文字化的标号和高亮应该可用于任何彩色终端模拟器。 标号和相应的高亮并不仅对调试器有用。Sun 的 Visual WorkShop 用标号和高亮来标识 错误和源程序浏览器的命中位置。它的调试器也支持 8 到 10 种不同的标号和高亮色。 |workshop| Netbeans |netbeans| 也是如此。 应用标号的过程分两步进行: 1. 定义标号。这里指定图像,文字和高亮设定。例如,你可以定义 "break" 标号为路边 的停止符号和文字 "!!"。 2. 放置标号。这里指定标号显示的文件和行号。每个定义好的标号可以在不同的文件和 行号上多次放置。 如果文件里定义了标号,Vim 自动增加两个字符的纵列来显示标号。撤销最后一个标号之 后,该列又会自动消失。该列的颜色由 SignColumn 高亮组定义 |hl-SignColumn|。一个 设定该颜色的示例:
:highlight SignColumn guibg=darkgrey
2. 命令 *sign-commands* *:sig* *:sign*
这里提供了一例,在当前文件的第 23 行显示 "piet" 标号,以文字 ">>" 标明。:sign define piet text=>> texthl=Search
:exe ":sign place 2 line=23 name=piet file=" . expand("%:p")
删除标号的命令:
:sign unplace 2
注意
":sign" 命令后面不能跟其它命令或者注释。如果需要,使用 |:execute| 命令。 定 义 标 号 *:sign-define* *E255* *E160* *E612* :sign define{name}
{argument}
... 定义新标号或为已存在的标号设置属性。{name}
可以是完全由数位组 成的数值,也可以是由非数位开头的名字。忽略开头的数位 (译者注
: 零?),所以 "0012"、"012" 和 "12" 认为是相同的名字。 可以定义大约 120 个不同的标号。 允许的参数是: icon={bitmap}
位图文件名。必须是完整的路径名。位图应该能够在两个字符的宽度内 显示。但是不会实际检查这一点,如果位图太大,刷新时会有问题。只 有 GTK 2 可以按比例缩放位图,使之刚好能占据可用的空间。 工具包 支持 GTK 1 pixmap (.xpm) GTK 2 许多 Motif pixmap (.xpm) Win32 .bmp, .ico, .cur pixmap (.xpm) |+xpm_w32| linehl={group}
用以显示整个标号行的高亮组。多用于定义背景色。 text={text}
*E239* 没有图标或者不用 GUI 时显示的文本。只允许可显示字符,而且必须 占据一到两个显示单元。 texthl={group}
显示文本项目的高亮组。 删 除 标 号 *:sign-undefine* *E155* :sign undefine{name}
删除已定义的标号。如果{name}
标号已经放置,会有问题。 列 出 标 号 *:sign-list* *E156* :sign list 列出所有的标号和它们的属性。 :sign list{name}
列出单个标号和他的属性。 放 置 标 号 *:sign-place* *E158* :sign place{id}
line={lnum}
name={name}
file={fname}
把{name}
指定的标号放在文件{fname}
的第{lnum}
行。 *:sign-fname* 文件{fname}
必须已经在某个缓冲区调入,而且必须使用准确的文件 名。通配符,$ENV 和 ~ 不会被扩展,空白不会被转义。结尾的空白则 会忽略。 用{id}
记住这个标号,将来可作进一步应用。{id}
必须是数值。用 户可以自行决定{id}
在每个文件内是否唯一。(如果多次使用,撤销 放置就必须做多次,而且进行修改时未必尽如预期)。 :sign place{id}
line={lnum}
name={name}
buffer={nr}
同上,但指定缓冲区{nr}
。 :sign place{id}
name={name}
file={fname}
把文件{fname}
里用{id}
记住的标号换成{name}
指定的新标号。 参看关于{fname}
的说明 |:sign-fname|。可用于不移动某个标号的 同时,更改它的显示方式 (例如,当调试器停在某个断点时)。 :sign place{id}
name={name}
buffer={nr}
同上,但指定缓冲区{nr}
。 撤 销 放 置 标 号 *:sign-unplace* *E159* :sign unplace{id}
file={fname}
从文件{fname}
里撤销已放置的标号{id}
的放置。 参看关于{fname}
的说明 |:sign-fname|。 :sign unplace * file={fname}
从文件{fname}
里撤销所有已放置的标号。 :sign unplace{id}
buffer={nr}
从缓冲区{nr}
里撤销已放置的标号{id}
的放置。 :sign unplace * buffer={nr}
从缓冲区{nr}
里撤销所有已放置的标号。 :sign unplace{id}
撤销所有文件里出现的{id}
标号的放置。 :sign unplace * 撤销所有标号的放置。 :sign unplace 撤销光标所在标号的放置。 列 出 放 置 标 号 :sign place file={fname}
列出文件{fname}
里所有放置的标号。 参看关于{fname}
的说明 |:sign-fname|。 :sign place buffer={nr}
列出缓冲区{nr}
里所有放置的标号。 :sign place 列出所有文件里放置的标号。 跳 到 标 号 *:sign-jump* *E157* :sign jump{id}
file={fname}
打开文件{fname}
或者跳转到包含{fname}
的窗口并把光标设在标号{id}
所在的位置。 参看关于{fname}
的说明 |:sign-fname|。 如果此文件不在窗口显示但当前文件又不能被放弃 |abandon|,此动作 失败。 :sign jump{id}
buffer={nr}
同上,但指定缓冲区{nr}
。 vim:tw=78:ts=8:ft=help:norl:
Generated by vim2html on Thu Sep 19 06:21:44 UTC 2013