Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [NESSUNO] ANSI escape

  1. #1
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    [NESSUNO] ANSI escape

    Salve a tutti, stavo sistemando i messaggi di avvio di linux per dare un pò di colore
    e sono incappato in questo escape: `\033(|[3)g'
    Questa è la teoria (man console_codes):
    \033g clear tab stop at the current position;
    \033[3g clear all tabs stops;
    Da quel che ho capito questo escape elimina dei caratteri di tabulazione
    nella posizione del cursore. Ora, ho fatto delle prove per capirlo ma ha un comportamento strano...
    Ecco cosa ho digitato e cosa ho ottenuto
    (Riga con `$' = comando, riga con `>' = output console)

    codice:
                                                                    | COLONNA 80
    $ echo -e '\033[g\tC'
    >     C                                                      |
    $ echo -e '\033[g\tC\tC'
    >        C    C                                             |
    $ echo -e '\033[g\tC\tC'
    >        C                C                                 |
    $ echo -e '\033[g\tC'
    >                                                           C|
    $ echo -e '\tC'
    >                                                           C|
    $ echo -e '\033c' # resetta terminale
    $ echo -e '\tC'
    >                                                           C|
    Praticamente adesso ho la larghezza di tabulazione che equivale a tutta la
    larghezza del terminale. Mentre io cerco di sistemare le cose...
    Qualcuno mi spiega come funziona questo escape?

    PS: Lasciate perdere i link, ne ho un centinaio e dicono tutti la stessa cosa...

  2. #2
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    Come al solito mi rispondo da solo... !

    Ho scoperto il funzionamento di sto escape!
    Praticamente quando utilizziamo l'escape `\t' è come se scrivessimo in una tabella dove il l'escape `\t' ci permette di avanzare di una colonna mentre l'escape '\v' di una riga;
    La larghezza delle colonne viene impostata dal driver del terminale (o almeno credo) ad 8 caratteri quindi supponendo di avere un terminale con dimensione 80x10 avremo 10 colonne x 10 righe. Con questo escape
    possiamo cancellare le impostazioni della tabulazione e creare una nostra tabella con dimensioni personalizzate... mica banane!
    codice:
    $ echo -e '\033[3g' # cancella le impostazioni
    $ echo -e '        \033H        \033H    \033H     \033H' # \033H fissa una tabulazione in un punto preciso.
    $ echo -e 'Pinco\tPanco\t0\tM'
    > Pinco   Panco   0 M
    Come si vede le tabulazioni non sono piu tutte da 8 caratteri ma: 8, 8, 2, 2!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.