This commit is contained in:
Fabian Homborg 2021-07-30 20:04:38 +02:00
parent 2087a3ca63
commit b2764ad4b1
2 changed files with 28 additions and 2 deletions

View File

@ -1,3 +1,5 @@
.. _cmd-string-length:
string-length - print string lengths
====================================
@ -8,7 +10,7 @@ Synopsis
::
string length [(-q | --quiet)] [STRING...]
string length [(-q | --quiet)] [(-V | --visible)] [STRING...]
.. END SYNOPSIS
@ -19,6 +21,8 @@ Description
``string length`` reports the length of each string argument in characters. Exit status: 0 if at least one non-empty STRING was given, or 1 otherwise.
With ``-V`` or ``--visible``, it uses the visible width of the arguments. That means it will discount escape sequences fish knows about, account for $fish_emoji_width and $fish_ambiguous_width. It will also count each line (separated by ``\n``) on its own, and with a carriage return (``\r``) count only the widest stretch on a line. The intent is to measure the number of columns the STRING would occupy in the current terminal.
.. END DESCRIPTION
Examples
@ -36,4 +40,22 @@ Examples
0
# Equivalent to test -n "$str"
>_ string length --visible (set_color red)foobar
# the set_color is discounted, so this is the width of "foobar"
6
>_ string length --visible 🐟🐟🐟🐟
# depending on $fish_emoji_width, this is either 4 or 8
# in new terminals it should be
8
>_ string length --visible abcdef\r123
# this displays as "123def", so the width is 6
6
>_ string length --visible a\nbc
# counts "a" and "bc" as separate lines, so it prints width for each
1
2
.. END EXAMPLES

View File

@ -17,7 +17,9 @@ Description
.. BEGIN DESCRIPTION
``string pad`` extends each STRING to the given width by adding CHAR to the left.
``string pad`` extends each STRING to the given visible width by adding CHAR to the left. That means the width of all visible characters added together, excluding escape sequences and accounting for $fish_emoji_width and $fish_ambiguous_width. It is the amount of columns in a terminal the STRING occupies.
The escape sequences reflect what *fish* knows about, and how it computes its output. Your terminal might support more escapes, or not support escape sequences that fish knows about.
If ``-r`` or ``--right`` is given, add the padding after a string.
@ -52,4 +54,6 @@ See Also
- The :ref:`printf <cmd-printf>` command can do simple padding, for example ``printf %10s\n`` works like ``string pad -w10``.
- :ref:`string length <cmd-string-length>` with the ``--visible`` option can be used to show what fish thinks the width is.
.. END EXAMPLES