diff runtime/doc/eval.txt @ 449:3709cf52b9b5 v7.0119

updated for version 7.0119
author vimboss
date Fri, 29 Jul 2005 22:36:03 +0000
parents dd9db57ee7ce
children 01af1008a8d8
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 28
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1585,6 +1585,7 @@ mode()				String	current editing mode
 nextnonblank( {lnum})		Number	line nr of non-blank line >= {lnum}
 nr2char( {expr})		String	single char with ASCII value {expr}
 prevnonblank( {lnum})		Number	line nr of non-blank line <= {lnum}
+printf( {fmt}, {expr1}...)	String  format text
 range( {expr} [, {max} [, {stride}]])
 				List	items from {expr} to {max}
 readfile({fname} [, {binary} [, {max}]])
@@ -3337,6 +3338,127 @@ nr2char({expr})						*nr2char()*
 		characters.  nr2char(0) is a real NUL and terminates the
 		string, thus results in an empty string.
 
+printf({fmt}, {expr1} ...)				*printf()*
+		Return a String with {fmt}, where "%" items are replaced by
+		the formatted form of their respective arguments.  Example: >
+			:echo printf("%4d: E%d %.30s", lnum, err, text)
+<		May result in:
+			  99: E42 asdfasdfasdfasdfasdfasdfasdfas ~
+
+		Often used items are:
+		  %s   	string
+		  %6s	string right-aligned in 6 characters
+		  %c    character
+		  %d    decimal number
+		  %5d   decimal number padded with spaces to 5 characters
+		  %x    hex number
+		  %04x  hex number padded with zeros to at least 4 characters
+		  %X    hex number using upper case letters
+		  %o    octal number
+		  %%    the % character
+
+		Conversion specifications start with '%' and end with the
+		conversion type.  All other characters are copied unchanged to
+		the result.
+
+		The "%" starts a conversion specification.  The following
+		arguments appear in sequence.  Overview:
+
+			%  flags  min-field-width  .precision  type
+
+	        -   Zero or more of the following flags:
+                
+		    #	      The value should be converted to an "alternate
+			      form".  For c, d, and s conversions, this option
+			      has no effect.  For o conversions, the precision
+			      of the number is increased to force the first
+			      character of the output string to a zero (except
+			      if a zero value is printed with an explicit
+			      precision of zero).
+			      For x and X conversions, a non-zero result has
+			      the string "0x" (or "0X" for X conversions)
+			      prepended to it.
+                
+		    0 (zero)  Zero padding.  For all conversions the converted
+			      value is padded on the left with zeros rather
+			      than blanks.  If a precision is given with a
+			      numeric conversion (d, o, x, and X), the 0 flag
+			      is ignored.
+                
+		    -	      A negative field width flag; the converted value
+			      is to be left adjusted on the field boundary.
+			      The converted value is padded on the right with
+			      blanks, rather than on the left with blanks or
+			      zeros.  A - overrides a 0 if both are given.
+                
+		    ' ' (space)  A blank should be left before a positive
+			      number produced by a signed conversion (d).
+                
+		    +	      A sign must always be placed before a number
+			      produced by a signed conversion.  A + overrides
+			      a space if both are used.
+                
+		-   An optional decimal digit string specifying a minimum
+		    field width.  If the converted value has fewer characters
+		    than the field width, it will be padded with spaces on the
+		    left (or right, if the left-adjustment flag has been
+		    given) to fill out the field width.
+                
+		-   An optional precision, in the form of a period '.'
+		    followed by an optional digit string.  If the digit string
+		    is omitted, the precision is taken as zero.  This gives
+		    the minimum number of digits to appear for d, o, x, and X
+		    conversions, or the maximum number of characters to be
+		    printed from a string for s conversions.
+                
+		-   A character that specifies the type of conversion to be
+		    applied, see below.
+                
+		A field width or precision, or both, may be indicated by an
+		asterisk '*' instead of a digit string.  In this case, a
+		Number argument supplies the field width or precision.  A
+		negative field width is treated as a left adjustment flag
+		followed by a positive field width; a negative precision is
+		treated as though it were missing.  Example: >
+			:echo printf("%d: %.*s", nr, columns, line)
+<		This limits the length of the text used from "line" to
+		"columns" bytes.
+
+	        The conversion specifiers and their meanings are:
+                
+		doxX    The Number argument is converted to signed decimal
+			(d), unsigned octal (o), or unsigned hexadecimal (x
+			and X) notation.  The letters "abcdef" are used for
+			x conversions; the letters "ABCDEF" are used for X
+			conversions.  The precision, if any, gives the minimum
+			number of digits that must appear; if the converted
+			value requires fewer digits, it is padded on the left
+			with zeros.
+                
+		c	The Number argument is converted to a byte, and
+			the resulting character is written.
+                
+		s	The String argument is used.  If a precision is
+			specified, no more bytes than the number specified are
+			written.
+                
+		%	A '%' is written.  No argument is converted.  The
+			complete conversion specification is "%%".
+                
+		Each argument can be Number or String and is converted
+		automatically to fit the conversion specifier.
+
+		In no case does a non-existent or small field width cause
+		truncation of a numeric field; if the result of a conversion
+		is wider than the field width, the field is expanded to
+		contain the conversion result.
+
+							*E766* *767*
+		The number of {exprN} arguments must exactly match the number
+		of "%" items.  If there are not sufficient or too many
+		arguments an error is given.
+
+
 prevnonblank({lnum})					*prevnonblank()*
 		Return the line number of the first line at or above {lnum}
 		that is not blank.  Example: >