*sign.txt*      For Vim version 8.0.  最近更新: 2017年8月


		  VIM 参考手册    by Gordon Prieur
				  and 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' 选项可改变此行为。

该列的颜色由 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}。

							*E885*
: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-list*

: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}					*E934*
		同上，但指定缓冲区 {nr}。如果缓冲区 {nr} 没有名字，报错。


 vim:tw=78:ts=8:ft=help:norl:
