192 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| *sign.txt*      For Vim version 7.0aa.  Last change: 2004 May 22
 | |
| 
 | |
| 
 | |
| 		  VIM REFERENCE MANUAL    by Gordon Prieur
 | |
| 					  and Bram Moolenaar
 | |
| 
 | |
| 
 | |
| Sign Support Features				*sign-support*
 | |
| 
 | |
| 1. Introduction				|sign-intro|
 | |
| 2. Commands				|sign-commands|
 | |
| 
 | |
| {Vi does not have any of these features}
 | |
| {only available when compiled with the |+signs| feature}
 | |
| 
 | |
| ==============================================================================
 | |
| 1. Introduction					*sign-intro* *signs*
 | |
| 
 | |
| When a debugger or other IDE tool is driving an editor it needs to be able
 | |
| to give specific highlights which quickly tell the user useful information
 | |
| about the file. One example of this would be a debugger which had an icon
 | |
| in the left-hand column denoting a breakpoint. Another example might be an
 | |
| arrow representing the Program Counter (PC). The sign features allow both
 | |
| placement of a sign, or icon, in the left-hand side of the window and
 | |
| definition of a highlight which will be applied to that line. Displaying the
 | |
| sign as an image is most likely only feasible in gvim (although Sun
 | |
| Microsystem's dtterm does support this its the only terminal emulator I know
 | |
| of which does).  A text sign and the highlight should be feasible in any color
 | |
| terminal emulator.
 | |
| 
 | |
| Signs and highlights are not useful just for debuggers. Sun's Visual
 | |
| WorkShop uses signs and highlights to mark build errors and SourceBrowser
 | |
| hits. Additionally, the debugger supports 8 to 10 different signs and
 | |
| highlight colors. |workshop|  Same for Netbeans |netbeans|.
 | |
| 
 | |
| There are two steps in using signs:
 | |
| 
 | |
| 1. Define the sign.  This specifies the image, text and highlighting.  For
 | |
|    example, you can define a "break" sign with an image of a stop roadsign and
 | |
|    text "!!".
 | |
| 
 | |
| 2. Place the sign.  This specifies the file and line number where the sign is
 | |
|    displayed.  A defined sign can be placed several times in different lines
 | |
|    and files.
 | |
| 
 | |
| When signs are defined for a file, Vim will automatically add a column of two
 | |
| characters to display them in.  When the last sign is unplaced the column
 | |
| disappears again.  The color of the column is set with the SignColumn group
 | |
| |hl-SignColumn|.  Example to set the color: >
 | |
| 
 | |
| 	:highlight SignColumn guibg=darkgrey
 | |
| 
 | |
| ==============================================================================
 | |
| 2. Commands					*sign-commands* *:sig* *:sign*
 | |
| 
 | |
| Here is an example that places a sign piet, displayed with the text ">>", in
 | |
| line 23 of the current file: >
 | |
| 	:sign define piet text=>> texthl=Search
 | |
| 	:exe ":sign place 2 line=23 name=piet file=" . expand("%:p")
 | |
| 
 | |
| And here is the command to delete it again: >
 | |
| 	:sign unplace 2
 | |
| 
 | |
| Note that the ":sign" command cannot be followed by another command or a
 | |
| comment.  If you do need that, use the |:execute| command.
 | |
| 
 | |
| 
 | |
| DEFINING A SIGN.			*:sign-define* *E255* *E160* *E612*
 | |
| 
 | |
| :sign define {name} {argument}...
 | |
| 		Define a new sign or set attributes for an existing sign.
 | |
| 		The {name} can either be a number (all digits) or a name
 | |
| 		starting with a non-digit.
 | |
| 		About 120 different signs can be defined.
 | |
| 
 | |
| 		Accepted arguments:
 | |
| 
 | |
| 	icon={pixmap}
 | |
| 		Define the file name where the bitmap can be found.  Should be
 | |
| 		a full path.  The bitmap should fit in the place of two
 | |
| 		characters.  This is not checked.  If the bitmap is too big it
 | |
| 		will cause redraw problems.  Only GTK 2 can scale the bitmap
 | |
| 		to fit the space available.
 | |
| 			toolkit		supports ~
 | |
| 			GTK 1		pixmap (.xpm)
 | |
| 			GTK 2		many
 | |
| 			Motif		pixmap (.xpm)
 | |
| 
 | |
| 	linehl={group}
 | |
| 		Highlighting group used for the whole line the sign is placed
 | |
| 		in.  Most useful is defining a background color.
 | |
| 
 | |
| 	text={text}						*E239*
 | |
| 		Define the text that is displayed when there is no icon or the
 | |
| 		GUI is not being used.  Only printable characters are allowed
 | |
| 		and they must occupy one or two display cells.
 | |
| 
 | |
| 	texthl={group}
 | |
| 		Highlighting group used for the text item.
 | |
| 
 | |
| 
 | |
| DELETING A SIGN						*:sign-undefine* *E155*
 | |
| 
 | |
| :sign undefine {name}
 | |
| 		Deletes a previously defined sign.  If signs with this {name}
 | |
| 		are still placed this will cause trouble.
 | |
| 
 | |
| 
 | |
| LISTING SIGNS						*:sign-list* *E156*
 | |
| 
 | |
| :sign list	Lists all defined signs and their attributes.
 | |
| 
 | |
| :sign list {name}
 | |
| 		Lists one defined sign and its attributes.
 | |
| 
 | |
| 
 | |
| PLACING SIGNS						*:sign-place* *E158*
 | |
| 
 | |
| :sign place {id} line={lnum} name={name} file={fname}
 | |
| 		Place sign defined as {name} at line {lnum} in file {fname}.
 | |
| 							*:sign-fname*
 | |
| 		The file {fname} must already be loaded in a buffer.  The
 | |
| 		exact file name must be used, wildcards, $ENV and ~ are not
 | |
| 		expanded, white space must not be escaped.  Trailing white
 | |
| 		space is ignored.
 | |
| 
 | |
| 		The sign is remembered under {id}, this can be used for
 | |
| 		further manipulation.  {id} must be a number.
 | |
| 		It's up to the user to make sure the {id} is used only once in
 | |
| 		each file (if it's used several times unplacing will also have
 | |
| 		to be done several times and making changes may not work as
 | |
| 		expected).
 | |
| 
 | |
| :sign place {id} line={lnum} name={name} buffer={nr}
 | |
| 		Same, but use buffer {nr}.
 | |
| 
 | |
| :sign place {id} name={name} file={fname}
 | |
| 		Change the placed sign {id} in file {fname} to use the defined
 | |
| 		sign {name}.  See remark above about {fname} |:sign-fname|.
 | |
| 		This can be used to change the displayed sign without moving
 | |
| 		it (e.g., when the debugger has stopped at a breakpoint).
 | |
| 
 | |
| :sign place {id} name={name} buffer={nr}
 | |
| 		Same, but use buffer {nr}.
 | |
| 
 | |
| 
 | |
| REMOVING SIGNS						*:sign-unplace* *E159*
 | |
| 
 | |
| :sign unplace {id} file={fname}
 | |
| 		Remove the previously placed sign {id} from file {fname}.
 | |
| 		See remark above about {fname} |:sign-fname|.
 | |
| 
 | |
| :sign unplace {id} buffer={nr}
 | |
| 		Same, but use buffer {nr}.
 | |
| 
 | |
| :sign unplace {id}
 | |
| 		Remove the previously placed sign {id} from all files it
 | |
| 		appears in.
 | |
| 
 | |
| :sign unplace *
 | |
| 		Remove all placed signs.
 | |
| 
 | |
| :sign unplace
 | |
| 		Remove the placed sign at the cursor position.
 | |
| 
 | |
| 
 | |
| LISTING PLACED SIGNS
 | |
| 
 | |
| :sign place file={fname}
 | |
| 		List signs placed in file {fname}.
 | |
| 		See remark above about {fname} |:sign-fname|.
 | |
| 
 | |
| :sign place buffer={nr}
 | |
| 		List signs placed in buffer {nr}.
 | |
| 
 | |
| :sign place	List placed signs in all files.
 | |
| 
 | |
| 
 | |
| JUMPING TO A SIGN					*:sign-jump* *E157*
 | |
| 
 | |
| :sign jump {id} file={fname}
 | |
| 		Open the file {fname} or jump to the window that contains
 | |
| 		{fname} and position the cursor at sign {id}.
 | |
| 		See remark above about {fname} |:sign-fname|.
 | |
| 		If the file isn't displayed in window and the current file can
 | |
| 		not be |abandon|ed this fails.
 | |
| 
 | |
| :sign jump {id} buffer={nr}
 | |
| 		Same, but use buffer {nr}.
 | |
| 
 | |
|  vim:tw=78:ts=8:ft=help:norl:
 |