Ars pregunta: ¡Comparte tus caparazones y muéstranos tus terminales trucos!

Eso timer_stop La función también tiene la tarea de convertir el temporizador a un formato legible por humanos, y esto probablemente sea más complicado de lo necesario. No soy desarrollador, así que esto es lo que se le ocurrió a Past Lee después de unas horas de buscar ejemplos.

Hacerlo con pescado para gente como yo.

Eso es para bash cuando entro a uno de mis hosts Linux, pero estoy ejecutando fish en MacOS. Tengo una función de pez separada para obtener los mismos resultados allí, completa con un truco básico para convertir las medidas en un formato legible por humanos. Codifiqué esto y lo lamento. Mira mi error procedente de StackOverflow.

function fish_prompt --description 'Write out the prompt'
    # Save the last status
    set -l last_status $status

    # Calculate the command duration if available
    set -l cmd_duration ""
    if set -q CMD_DURATION
        # Convert milliseconds to microseconds for more precise comparison
        set -l duration_us (math "$CMD_DURATION * 1000")

        # Calculate different time units
        set -l us (math "$duration_us % 1000")
        set -l ms (math "floor($duration_us / 1000) % 1000")
        set -l s (math "floor($duration_us / 1000000) % 60")
        set -l m (math "floor($duration_us / 60000000) % 60")
        set -l h (math "floor($duration_us / 3600000000)")

        # Format duration string
        if test $h -gt 0
            set cmd_duration (string join '' "(" $h "h" $m "m)")
        else if test $m -gt 0
            set cmd_duration (string join '' "(" $m "m" $s "s)")
        else if test $s -ge 10
            set -l fraction (math "floor($ms / 100)")
            set cmd_duration (string join '' "(" $s "." $fraction "s)")
        else if test $s -gt 0
            set cmd_duration (string join '' "(" $s "." (printf "%03d" $ms) "s)")
        else if test $ms -ge 100
            set cmd_duration (string join '' "(" $ms "ms)")
        else if test $ms -gt 0
            set -l fraction (math "floor($us / 100)")
            set cmd_duration (string join '' "(" $ms "." $fraction "ms)")
        else
            set cmd_duration (string join '' "(" $us "us)")
        end
    end

    # Define unicode symbols for status
    set -l checkmark "✓"
    set -l cross "✗"

    # Colors
    set -l normal (set_color normal)
    set -l dark_gray (set_color 555555)
    set -l blue (set_color -o blue)
    set -l red (set_color red)
    set -l green (set_color green)
    set -l purple (set_color -o purple)

    # First line
    echo # New line
    echo -n -s $dark_gray "("(date +%T)") $last_status " # Time in brackets and exit status

    # Status indicator with exit status
    if test $last_status -eq 0
        echo -n -s $green $checkmark
    else
        echo -n -s $red $cross
    end

    # Actually echo the duration
    echo -n -s $dark_gray " $cmd_duration"

    # Do the rest of the prompt
    echo
    set -l host_color $purple
    echo -n -s $host_color $USER "@" (prompt_hostname) $normal ":" $blue (prompt_pwd) $normal " \$ "
end

Salpicadura de color

Pasar mis años de formación inmerso en gráficos ANSI BBS puede haberme hecho un poco más fanático del texto en color en mi terminal que el administrador promedio desaliñado y sin botones. Mira, sé que algunas personas se sienten mal con el resaltado de sintaxis y los colores en general. mata la comprensión y fomenta el desnatadopero ¿qué puedo decir? Los amo y confío en ellos. Quizás estoy hojeando demasiado, pero da igual. Puedes quitarme mi colorido equipo de conchas de mis manos frías y muertas.

Para eso, me apoyo en un pequeño programa llamado GRC (por Tintes genéricos) para agregar resaltado y coloreado a otras herramientas. Está ampliamente disponible y funciona sin ninguna configuración adicional.

¡No hay nada malo con un poco de color!

Lee Hutchinson

Hay un poco de alias (que mantuve .bash_aliases como un buen ciudadano) para hacer que la salida colorida sea la predeterminada en algunos comandos comunes:

    alias ls="ls --color=auto"
    alias ll="ls -AlFh --group-directories-first"
    alias df="grc df -h"
    alias du='grc du -h'
    alias free="grc free -h"
    alias ping='grc ping'
    alias traceroute="grc traceroute"
    alias ip='grc ip'

También soy un gran admirador de hacer que mis números sean legibles para los humanos, y -h Por lo tanto, el interruptor se aplica libremente.

(Tenga en cuenta que los comandos contenedores como ip en GRC a veces puede hacer cosas extrañas si canaliza su salida a otra cosa. Ten cuidado. ¡O no! Es tu computadora, ¡destrúyete!)

La propia terminal

Los lectores observadores notarán en la captura de pantalla que uso Terminal.app de MacOS para mi programa de terminal, aunque hay opciones mucho mejores. Supongo que la razón es porque me siento cómodo con Terminal.app y nada me aleja de él. He probado a los sospechosos habituales.Fantasma, Alertarlos poderosos iTerm2 con eso genial integración de ventana tmuxe incluso nuevas y emocionantes reinterpretaciones de experiencias terminales como Curvo.



Source link