Commit 3c3766fd authored by Alexander Huynh's avatar Alexander Huynh Committed by Robby Russell
Browse files

Provide even spacing between marks (#7456)

Before, when typing the `marks` command, longer mark keys would cause
the tabs to spill over to the next tab stop, like so:

    rc      -> /home/ahlex/.rc
    repos   -> /home/ahlex/repos
    a-longer-string         -> /tmp

Implement better key display by running through all of the marks twice,
once to get the longest key length, and the second time to format
everything according to that length:

                 rc -> /home/ahlex/.rc
              repos -> /home/ahlex/repos
    a-longer-string -> /tmp
parent d0c06d9e
...@@ -28,11 +28,18 @@ unmark() { ...@@ -28,11 +28,18 @@ unmark() {
} }
marks() { marks() {
local max=0
for link in $MARKPATH/*(@); do
if [[ ${#link:t} -gt $max ]]; then
max=${#link:t}
fi
done
local printf_markname_template="$(printf -- "%%%us " "$max")"
for link in $MARKPATH/*(@); do for link in $MARKPATH/*(@); do
local markname="$fg[cyan]${link:t}$reset_color" local markname="$fg[cyan]${link:t}$reset_color"
local markpath="$fg[blue]$(readlink $link)$reset_color" local markpath="$fg[blue]$(readlink $link)$reset_color"
printf "%s\t" $markname printf -- "$printf_markname_template" "$markname"
printf -- "-> %s \t\n" $markpath printf -- "-> %s\n" "$markpath"
done done
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment