Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using a variable as a prefix argument to a format directive

I need to print something with variable number of spaces before it. For example if I need to print 5 spaces before my text, I will do:

(format T "%5T My Text")
Output:     My Text

In place of 5, can I use a variable and be able to pass on a value to it? What I am looking for is like:

(format T "%(~d)T My Text" 5)
output:     My Text
like image 644
Prarobo Avatar asked Nov 10 '13 16:11

Prarobo


1 Answers

Try

(format T "~vT My Text" 5)

See 22.3 Formatted Output:

In place of a prefix parameter to a directive, V (or v) can be used. In this case, format takes an argument from args as a parameter to the directive. The argument should be an integer or character. If the arg used by a V parameter is nil, the effect is as if the parameter had been omitted. # can be used in place of a prefix parameter; it represents the number of args remaining to be processed. When used within a recursive format, in the context of ~? or ~{, the # prefix parameter represents the number of format arguments remaining within the recursive call.

like image 94
uselpa Avatar answered Sep 20 '22 14:09

uselpa