xref: /vim-8.2.3635/runtime/doc/sign.txt (revision 820d5525)
1*sign.txt*      For Vim version 8.2.  Last change: 2021 Mar 07
2
3
4		  VIM REFERENCE MANUAL    by Gordon Prieur
5					  and Bram Moolenaar
6
7
8Sign Support Features				*sign-support*
9
101. Introduction				|sign-intro|
112. Commands				|sign-commands|
123. Functions				|sign-functions-details|
13
14{only available when compiled with the |+signs| feature}
15
16==============================================================================
171. Introduction					*sign-intro* *signs*
18
19When a debugger or other IDE tool is driving an editor it needs to be able
20to give specific highlights which quickly tell the user useful information
21about the file.  One example of this would be a debugger which had an icon
22in the left-hand column denoting a breakpoint.  Another example might be an
23arrow representing the Program Counter (PC).  The sign features allow both
24placement of a sign, or icon, in the left-hand side of the window and
25definition of a highlight which will be applied to that line.  Displaying the
26sign as an image is most likely only feasible in gvim (although Sun
27Microsystem's dtterm does support this it's the only terminal emulator I know
28of which does).  A text sign and the highlight should be feasible in any color
29terminal emulator.
30
31Signs and highlights are not useful just for debuggers.  Sun's Visual
32WorkShop uses signs and highlights to mark build errors and SourceBrowser
33hits.  Additionally, the debugger supports 8 to 10 different signs and
34highlight colors, see |NetBeans|.
35
36There are two steps in using signs:
37
381. Define the sign.  This specifies the image, text and highlighting.  For
39   example, you can define a "break" sign with an image of a stop roadsign and
40   text "!!".
41
422. Place the sign.  This specifies the file and line number where the sign is
43   displayed.  A defined sign can be placed several times in different lines
44   and files.
45
46							*sign-column*
47When signs are defined for a file, Vim will automatically add a column of two
48characters to display them in.  When the last sign is unplaced the column
49disappears again.  This behavior can be changed with the 'signcolumn' option.
50
51The color of the column is set with the SignColumn highlight group
52|hl-SignColumn|.  Example to set the color: >
53
54	:highlight SignColumn guibg=darkgrey
55<
56							*sign-identifier*
57Each placed sign is identified by a number called the sign identifier. This
58identifier is used to jump to the sign or to remove the sign. The identifier
59is assigned when placing the sign using the |:sign-place| command or the
60|sign_place()| function. Each sign identifier should be a unique number. If
61multiple placed signs use the same identifier, then jumping to or removing a
62sign becomes unpredictable. To avoid overlapping identifiers, sign groups can
63be used. The |sign_place()| function can be called with a zero sign identifier
64to allocate the next available identifier.
65
66							*sign-group*
67Each placed sign can be assigned to either the global group or a named group.
68When placing a sign, if a group name is not supplied, or an empty string is
69used, then the sign is placed in the global group. Otherwise the sign is
70placed in the named group. The sign identifier is unique within a group. The
71sign group allows Vim plugins to use unique signs without interfering with
72other plugins using signs.
73
74To place a sign in a popup window the group name must start with "PopUp".
75Other signs will not show in a popup window.  The group name "PopUpMenu" is
76used by popup windows where 'cursorline' is set.
77
78							*sign-priority*
79Each placed sign is assigned a priority value. When multiple signs are placed
80on the same line, the attributes of the sign with the highest priority is used
81independently of the sign group. The default priority for a sign is 10. The
82priority is assigned at the time of placing a sign.
83
84When two signs with the same priority are present, and one has an icon or text
85in the signcolumn while the other has line highlighting, then both are
86displayed.
87
88When the line on which the sign is placed is deleted, the sign is moved to the
89next line (or the last line of the buffer, if there is no next line).  When
90the delete is undone the sign does not move back.
91
92When a sign with line highlighting and 'cursorline' highlighting are both
93present, if the priority is 100 or more then the sign highlighting takes
94precedence, otherwise the 'cursorline' highlighting.
95
96==============================================================================
972. Commands					*sign-commands* *:sig* *:sign*
98
99Here is an example that places a sign "piet", displayed with the text ">>", in
100line 23 of the current file: >
101	:sign define piet text=>> texthl=Search
102	:exe ":sign place 2 line=23 name=piet file=" . expand("%:p")
103
104And here is the command to delete it again: >
105	:sign unplace 2
106
107Note that the ":sign" command cannot be followed by another command or a
108comment.  If you do need that, use the |:execute| command.
109
110
111DEFINING A SIGN.			*:sign-define* *E255* *E160* *E612*
112
113See |sign_define()| for the equivalent Vim script function.
114
115:sign define {name} {argument}...
116		Define a new sign or set attributes for an existing sign.
117		The {name} can either be a number (all digits) or a name
118		starting with a non-digit.  Leading zeros are ignored, thus
119		"0012", "012" and "12" are considered the same name.
120		About 120 different signs can be defined.
121
122		Accepted arguments:
123
124	icon={bitmap}
125		Define the file name where the bitmap can be found.  Should be
126		a full path.  The bitmap should fit in the place of two
127		characters.  This is not checked.  If the bitmap is too big it
128		will cause redraw problems.  Only GTK 2 can scale the bitmap
129		to fit the space available.
130			toolkit		supports ~
131			GTK 1		pixmap (.xpm)
132			GTK 2		many
133			Motif		pixmap (.xpm)
134			Win32		.bmp, .ico, .cur
135					pixmap (.xpm) |+xpm_w32|
136
137	linehl={group}
138		Highlighting group used for the whole line the sign is placed
139		in.  Most useful is defining a background color.
140
141	text={text}						*E239*
142		Define the text that is displayed when there is no icon or the
143		GUI is not being used.  Only printable characters are allowed
144		and they must occupy one or two display cells.
145
146	texthl={group}
147		Highlighting group used for the text item.
148
149	Example: >
150		:sign define MySign text=>> texthl=Search linehl=DiffText
151<
152
153DELETING A SIGN						*:sign-undefine* *E155*
154
155See |sign_undefine()| for the equivalent Vim script function.
156
157:sign undefine {name}
158		Deletes a previously defined sign.  If signs with this {name}
159		are still placed this will cause trouble.
160
161		Example: >
162			:sign undefine MySign
163<
164
165LISTING SIGNS						*:sign-list* *E156*
166
167See |sign_getdefined()| for the equivalent Vim script function.
168
169:sign list	Lists all defined signs and their attributes.
170
171:sign list {name}
172		Lists one defined sign and its attributes.
173
174
175PLACING SIGNS						*:sign-place* *E158*
176
177See |sign_place()| for the equivalent Vim script function.
178
179:sign place {id} line={lnum} name={name} file={fname}
180		Place sign defined as {name} at line {lnum} in file {fname}.
181							*:sign-fname*
182		The file {fname} must already be loaded in a buffer.  The
183		exact file name must be used, wildcards, $ENV and ~ are not
184		expanded, white space must not be escaped.  Trailing white
185		space is ignored.
186
187		The sign is remembered under {id}, this can be used for
188		further manipulation.  {id} must be a number.
189		It's up to the user to make sure the {id} is used only once in
190		each file (if it's used several times unplacing will also have
191		to be done several times and making changes may not work as
192		expected).
193
194		The following optional sign attributes can be specified before
195		"file=":
196			group={group}	Place sign in sign group {group}
197			priority={prio}	Assign priority {prio} to sign
198
199		By default, the sign is placed in the global sign group.
200
201		By default, the sign is assigned a default priority of 10. To
202		assign a different priority value, use "priority={prio}" to
203		specify a value.  The priority is used to determine the sign
204		that is displayed when multiple signs are placed on the same
205		line.
206
207		Examples: >
208			:sign place 5 line=3 name=sign1 file=a.py
209			:sign place 6 group=g2 line=2 name=sign2 file=x.py
210			:sign place 9 group=g2 priority=50 line=5
211							\ name=sign1 file=a.py
212<
213:sign place {id} line={lnum} name={name} [buffer={nr}]
214		Same, but use buffer {nr}.  If the buffer argument is not
215		given, place the sign in the current buffer.
216
217		Example: >
218			:sign place 10 line=99 name=sign3
219			:sign place 10 line=99 name=sign3 buffer=3
220<
221							*E885*
222:sign place {id} name={name} file={fname}
223		Change the placed sign {id} in file {fname} to use the defined
224		sign {name}.  See remark above about {fname} |:sign-fname|.
225		This can be used to change the displayed sign without moving
226		it (e.g., when the debugger has stopped at a breakpoint).
227
228		The optional "group={group}" attribute can be used before
229		"file=" to select a sign in a particular group.  The optional
230		"priority={prio}" attribute can be used to change the priority
231		of an existing sign.
232
233		Example: >
234			:sign place 23 name=sign1 file=/path/to/edit.py
235<
236:sign place {id} name={name} [buffer={nr}]
237		Same, but use buffer {nr}.  If the buffer argument is not
238		given, use the current buffer.
239
240		Example: >
241			:sign place 23 name=sign1
242			:sign place 23 name=sign1 buffer=7
243<
244
245REMOVING SIGNS						*:sign-unplace* *E159*
246
247See |sign_unplace()| for the equivalent Vim script function.
248
249:sign unplace {id} file={fname}
250		Remove the previously placed sign {id} from file {fname}.
251		See remark above about {fname} |:sign-fname|.
252
253:sign unplace {id} group={group} file={fname}
254		Same but remove the sign {id} in sign group {group}.
255
256:sign unplace {id} group=* file={fname}
257		Same but remove the sign {id} from all the sign groups.
258
259:sign unplace * file={fname}
260		Remove all placed signs in file {fname}.
261
262:sign unplace * group={group} file={fname}
263		Remove all placed signs in group {group} from file {fname}.
264
265:sign unplace * group=* file={fname}
266		Remove all placed signs in all the groups from file {fname}.
267
268:sign unplace {id} buffer={nr}
269		Remove the previously placed sign {id} from buffer {nr}.
270
271:sign unplace {id} group={group} buffer={nr}
272		Remove the previously placed sign {id} in group {group} from
273		buffer {nr}.
274
275:sign unplace {id} group=* buffer={nr}
276		Remove the previously placed sign {id} in all the groups from
277		buffer {nr}.
278
279:sign unplace * buffer={nr}
280		Remove all placed signs in buffer {nr}.
281
282:sign unplace * group={group} buffer={nr}
283		Remove all placed signs in group {group} from buffer {nr}.
284
285:sign unplace * group=* buffer={nr}
286		Remove all placed signs in all the groups from buffer {nr}.
287
288:sign unplace {id}
289		Remove the previously placed sign {id} from all files it
290		appears in.
291
292:sign unplace {id} group={group}
293		Remove the previously placed sign {id} in group {group} from
294		all files it appears in.
295
296:sign unplace {id} group=*
297		Remove the previously placed sign {id} in all the groups from
298		all the files it appears in.
299
300:sign unplace *
301		Remove all placed signs in the global group from all the files.
302
303:sign unplace * group={group}
304		Remove all placed signs in group {group} from all the files.
305
306:sign unplace * group=*
307		Remove all placed signs in all the groups from all the files.
308
309:sign unplace
310		Remove a placed sign at the cursor position. If multiple signs
311		are placed in the line, then only one is removed.
312
313:sign unplace group={group}
314		Remove a placed sign in group {group} at the cursor
315		position.
316
317:sign unplace group=*
318		Remove a placed sign in any group at the cursor position.
319
320
321LISTING PLACED SIGNS					*:sign-place-list*
322
323See |sign_getplaced()| for the equivalent Vim script function.
324
325:sign place file={fname}
326		List signs placed in file {fname}.
327		See remark above about {fname} |:sign-fname|.
328
329:sign place group={group} file={fname}
330		List signs in group {group} placed in file {fname}.
331
332:sign place group=* file={fname}
333		List signs in all the groups placed in file {fname}.
334
335:sign place buffer={nr}
336		List signs placed in buffer {nr}.
337
338:sign place group={group} buffer={nr}
339		List signs in group {group} placed in buffer {nr}.
340
341:sign place group=* buffer={nr}
342		List signs in all the groups placed in buffer {nr}.
343
344:sign place	List placed signs in the global group in all files.
345
346:sign place group={group}
347		List placed signs with sign group {group} in all files.
348
349:sign place group=*
350		List placed signs in all sign groups in all files.
351
352
353JUMPING TO A SIGN					*:sign-jump* *E157*
354
355See |sign_jump()| for the equivalent Vim script function.
356
357:sign jump {id} file={fname}
358		Open the file {fname} or jump to the window that contains
359		{fname} and position the cursor at sign {id}.
360		See remark above about {fname} |:sign-fname|.
361		If the file isn't displayed in window and the current file can
362		not be |abandon|ed this fails.
363
364:sign jump {id} group={group} file={fname}
365		Same but jump to the sign in group {group}
366
367:sign jump {id} [buffer={nr}]					*E934*
368		Same, but use buffer {nr}.  This fails if buffer {nr} does not
369		have a name. If the buffer argument is not given, use the
370		current buffer.
371
372:sign jump {id} group={group} [buffer={nr}]
373		Same but jump to the sign in group {group}
374
375
376==============================================================================
3773. Functions					*sign-functions-details*
378
379sign_define({name} [, {dict}])				*sign_define()*
380sign_define({list})
381		Define a new sign named {name} or modify the attributes of an
382		existing sign.  This is similar to the |:sign-define| command.
383
384		Prefix {name} with a unique text to avoid name collisions.
385		There is no {group} like with placing signs.
386
387		The {name} can be a String or a Number.  The optional {dict}
388		argument specifies the sign attributes.  The following values
389		are supported:
390		   icon		full path to the bitmap file for the sign.
391		   linehl	highlight group used for the whole line the
392				sign is placed in.
393		   text		text that is displayed when there is no icon
394				or the GUI is not being used.
395		   texthl	highlight group used for the text item
396
397		If the sign named {name} already exists, then the attributes
398		of the sign are updated.
399
400		The one argument {list} can be used to define a list of signs.
401		Each list item is a dictionary with the above items in {dict}
402		and a "name" item for the sign name.
403
404		Returns 0 on success and -1 on failure.  When the one argument
405		{list} is used, then returns a List of values one for each
406		defined sign.
407
408		Examples: >
409			call sign_define("mySign", {
410				\ "text" : "=>",
411				\ "texthl" : "Error",
412				\ "linehl" : "Search"})
413			call sign_define([
414				\ {'name' : 'sign1',
415				\  'text' : '=>'},
416				\ {'name' : 'sign2',
417				\  'text' : '!!'}
418				\ ])
419<
420		Can also be used as a |method|: >
421			GetSignList()->sign_define()
422
423sign_getdefined([{name}])				*sign_getdefined()*
424		Get a list of defined signs and their attributes.
425		This is similar to the |:sign-list| command.
426
427		If the {name} is not supplied, then a list of all the defined
428		signs is returned. Otherwise the attribute of the specified
429		sign is returned.
430
431		Each list item in the returned value is a dictionary with the
432		following entries:
433		   icon		full path to the bitmap file of the sign
434		   linehl	highlight group used for the whole line the
435				sign is placed in.
436		   name		name of the sign
437		   text		text that is displayed when there is no icon
438				or the GUI is not being used.
439		   texthl	highlight group used for the text item
440
441		Returns an empty List if there are no signs and when {name} is
442		not found.
443
444		Examples: >
445			" Get a list of all the defined signs
446			echo sign_getdefined()
447
448			" Get the attribute of the sign named mySign
449			echo sign_getdefined("mySign")
450<
451		Can also be used as a |method|: >
452			GetSignList()->sign_getdefined()
453
454sign_getplaced([{buf} [, {dict}]])			*sign_getplaced()*
455		Return a list of signs placed in a buffer or all the buffers.
456		This is similar to the |:sign-place-list| command.
457
458		If the optional buffer name {buf} is specified, then only the
459		list of signs placed in that buffer is returned.  For the use
460		of {buf}, see |bufname()|. The optional {dict} can contain
461		the following entries:
462		   group	select only signs in this group
463		   id		select sign with this identifier
464		   lnum		select signs placed in this line. For the use
465				of {lnum}, see |line()|.
466		If {group} is '*', then signs in all the groups including the
467		global group are returned. If {group} is not supplied or is an
468		empty string, then only signs in the global group are
469		returned.  If no arguments are supplied, then signs in the
470		global group placed in all the buffers are returned.
471		See |sign-group|.
472
473		Each list item in the returned value is a dictionary with the
474		following entries:
475			bufnr	number of the buffer with the sign
476			signs	list of signs placed in {bufnr}. Each list
477				item is a dictionary with the below listed
478				entries
479
480		The dictionary for each sign contains the following entries:
481			group	 sign group. Set to '' for the global group.
482			id	 identifier of the sign
483			lnum	 line number where the sign is placed
484			name	 name of the defined sign
485			priority sign priority
486
487		The returned signs in a buffer are ordered by their line
488		number and priority.
489
490		Returns an empty list on failure or if there are no placed
491		signs.
492
493		Examples: >
494			" Get a List of signs placed in eval.c in the
495			" global group
496			echo sign_getplaced("eval.c")
497
498			" Get a List of signs in group 'g1' placed in eval.c
499			echo sign_getplaced("eval.c", {'group' : 'g1'})
500
501			" Get a List of signs placed at line 10 in eval.c
502			echo sign_getplaced("eval.c", {'lnum' : 10})
503
504			" Get sign with identifier 10 placed in a.py
505			echo sign_getplaced("a.py", {'id' : 10})
506
507			" Get sign with id 20 in group 'g1' placed in a.py
508			echo sign_getplaced("a.py", {'group' : 'g1',
509							\  'id' : 20})
510
511			" Get a List of all the placed signs
512			echo sign_getplaced()
513<
514		Can also be used as a |method|: >
515			GetBufname()->sign_getplaced()
516<
517							*sign_jump()*
518sign_jump({id}, {group}, {buf})
519		Open the buffer {buf} or jump to the window that contains
520		{buf} and position the cursor at sign {id} in group {group}.
521		This is similar to the |:sign-jump| command.
522
523		If {group} is an empty string, then the global group is used.
524		For the use of {buf}, see |bufname()|.
525
526		Returns the line number of the sign. Returns -1 if the
527		arguments are invalid.
528
529		Example: >
530			" Jump to sign 10 in the current buffer
531			call sign_jump(10, '', '')
532<
533		Can also be used as a |method|: >
534			GetSignid()->sign_jump()
535<
536							*sign_place()*
537sign_place({id}, {group}, {name}, {buf} [, {dict}])
538		Place the sign defined as {name} at line {lnum} in file or
539		buffer {buf} and assign {id} and {group} to sign.  This is
540		similar to the |:sign-place| command.
541
542		If the sign identifier {id} is zero, then a new identifier is
543		allocated.  Otherwise the specified number is used. {group} is
544		the sign group name. To use the global sign group, use an
545		empty string.  {group} functions as a namespace for {id}, thus
546		two groups can use the same IDs. Refer to |sign-identifier|
547		and |sign-group| for more information.
548
549		{name} refers to a defined sign.
550		{buf} refers to a buffer name or number. For the accepted
551		values, see |bufname()|.
552
553		The optional {dict} argument supports the following entries:
554			lnum		line number in the file or buffer
555					{buf} where the sign is to be placed.
556					For the accepted values, see |line()|.
557			priority	priority of the sign. See
558					|sign-priority| for more information.
559
560		If the optional {dict} is not specified, then it modifies the
561		placed sign {id} in group {group} to use the defined sign
562		{name}.
563
564		Returns the sign identifier on success and -1 on failure.
565
566		Examples: >
567			" Place a sign named sign1 with id 5 at line 20 in
568			" buffer json.c
569			call sign_place(5, '', 'sign1', 'json.c',
570							\ {'lnum' : 20})
571
572			" Updates sign 5 in buffer json.c to use sign2
573			call sign_place(5, '', 'sign2', 'json.c')
574
575			" Place a sign named sign3 at line 30 in
576			" buffer json.c with a new identifier
577			let id = sign_place(0, '', 'sign3', 'json.c',
578							\ {'lnum' : 30})
579
580			" Place a sign named sign4 with id 10 in group 'g3'
581			" at line 40 in buffer json.c with priority 90
582			call sign_place(10, 'g3', 'sign4', 'json.c',
583					\ {'lnum' : 40, 'priority' : 90})
584<
585		Can also be used as a |method|: >
586			GetSignid()->sign_place(group, name, expr)
587<
588							*sign_placelist()*
589sign_placelist({list})
590		Place one or more signs.  This is similar to the
591		|sign_place()| function.  The {list} argument specifies the
592		List of signs to place. Each list item is a dict with the
593		following sign attributes:
594		    buffer	buffer name or number. For the accepted
595				values, see |bufname()|.
596		    group	sign group. {group} functions as a namespace
597				for {id}, thus two groups can use the same
598				IDs. If not specified or set to an empty
599				string, then the global group is used.   See
600				|sign-group| for more information.
601		    id		sign identifier. If not specified or zero,
602				then a new unique identifier is allocated.
603				Otherwise the specified number is used. See
604				|sign-identifier| for more information.
605		    lnum	line number in the buffer {expr} where the
606				sign is to be placed. For the accepted values,
607				see |line()|.
608		    name	name of the sign to place. See |sign_define()|
609		    		for more information.
610		    priority	priority of the sign. When multiple signs are
611				placed on a line, the sign with the highest
612				priority is used. If not specified, the
613				default value of 10 is used. See
614				|sign-priority| for more information.
615
616		If {id} refers to an existing sign, then the existing sign is
617		modified to use the specified {name} and/or {priority}.
618
619		Returns a List of sign identifiers. If failed to place a
620		sign, the corresponding list item is set to -1.
621
622		Examples: >
623			" Place sign s1 with id 5 at line 20 and id 10 at line
624			" 30 in buffer a.c
625			let [n1, n2] = sign_placelist([
626				\ {'id' : 5,
627				\  'name' : 's1',
628				\  'buffer' : 'a.c',
629				\  'lnum' : 20},
630				\ {'id' : 10,
631				\  'name' : 's1',
632				\  'buffer' : 'a.c',
633				\  'lnum' : 30}
634				\ ])
635
636			" Place sign s1 in buffer a.c at line 40 and 50
637			" with auto-generated identifiers
638			let [n1, n2] = sign_placelist([
639				\ {'name' : 's1',
640				\  'buffer' : 'a.c',
641				\  'lnum' : 40},
642				\ {'name' : 's1',
643				\  'buffer' : 'a.c',
644				\  'lnum' : 50}
645				\ ])
646<
647		Can also be used as a |method|: >
648			GetSignlist()->sign_placelist()
649
650sign_undefine([{name}])					*sign_undefine()*
651sign_undefine({list})
652		Deletes a previously defined sign {name}. This is similar to
653		the |:sign-undefine| command. If {name} is not supplied, then
654		deletes all the defined signs.
655
656		The one argument {list} can be used to undefine a list of
657		signs. Each list item is the name of a sign.
658
659		Returns 0 on success and -1 on failure.  For the one argument
660		{list} call, returns a list of values one for each undefined
661		sign.
662
663		Examples: >
664			" Delete a sign named mySign
665			call sign_undefine("mySign")
666
667			" Delete signs 'sign1' and 'sign2'
668			call sign_undefine(["sign1", "sign2"])
669
670			" Delete all the signs
671			call sign_undefine()
672<
673		Can also be used as a |method|: >
674			GetSignlist()->sign_undefine()
675
676sign_unplace({group} [, {dict}])			*sign_unplace()*
677		Remove a previously placed sign in one or more buffers.  This
678		is similar to the |:sign-unplace| command.
679
680		{group} is the sign group name. To use the global sign group,
681		use an empty string.  If {group} is set to '*', then all the
682		groups including the global group are used.
683		The signs in {group} are selected based on the entries in
684		{dict}.  The following optional entries in {dict} are
685		supported:
686			buffer	buffer name or number. See |bufname()|.
687			id	sign identifier
688		If {dict} is not supplied, then all the signs in {group} are
689		removed.
690
691		Returns 0 on success and -1 on failure.
692
693		Examples: >
694			" Remove sign 10 from buffer a.vim
695			call sign_unplace('', {'buffer' : "a.vim", 'id' : 10})
696
697			" Remove sign 20 in group 'g1' from buffer 3
698			call sign_unplace('g1', {'buffer' : 3, 'id' : 20})
699
700			" Remove all the signs in group 'g2' from buffer 10
701			call sign_unplace('g2', {'buffer' : 10})
702
703			" Remove sign 30 in group 'g3' from all the buffers
704			call sign_unplace('g3', {'id' : 30})
705
706			" Remove all the signs placed in buffer 5
707			call sign_unplace('*', {'buffer' : 5})
708
709			" Remove the signs in group 'g4' from all the buffers
710			call sign_unplace('g4')
711
712			" Remove sign 40 from all the buffers
713			call sign_unplace('*', {'id' : 40})
714
715			" Remove all the placed signs from all the buffers
716			call sign_unplace('*')
717
718<		Can also be used as a |method|: >
719			GetSigngroup()->sign_unplace()
720<
721sign_unplacelist({list})				*sign_unplacelist()*
722		Remove previously placed signs from one or more buffers.  This
723		is similar to the |sign_unplace()| function.
724
725		The {list} argument specifies the List of signs to remove.
726		Each list item is a dict with the following sign attributes:
727		    buffer	buffer name or number. For the accepted
728				values, see |bufname()|. If not specified,
729				then the specified sign is removed from all
730				the buffers.
731		    group	sign group name. If not specified or set to an
732				empty string, then the global sign group is
733				used. If set to '*', then all the groups
734				including the global group are used.
735		    id		sign identifier. If not specified, then all
736				the signs in the specified group are removed.
737
738		Returns a List where an entry is set to 0 if the corresponding
739		sign was successfully removed or -1 on failure.
740
741		Example: >
742			" Remove sign with id 10 from buffer a.vim and sign
743			" with id 20 from buffer b.vim
744			call sign_unplacelist([
745				\ {'id' : 10, 'buffer' : "a.vim"},
746				\ {'id' : 20, 'buffer' : 'b.vim'},
747				\ ])
748<
749		Can also be used as a |method|: >
750			GetSignlist()->sign_unplacelist()
751<
752
753 vim:tw=78:ts=8:noet:ft=help:norl:
754