2012-04-22 11 views
5

Nella console è possibile stampare "\b" per cancellare il carattere a sinistra del cursore (backspace) come questoSpostarsi di un carattere a sinistra nella console

print "the last char is going to be erased\b" # the last char is going to be erased 

Come spostare solo una posizione invece di sinistra cancellazione (freccia sinistra)?

risposta

9

Essa dipende dal tipo di terminale e collegamento, ma generalmente si può assumere il movimento del cursore ANSI, così cursore sinistro è ESC + '[' + 'D':

print "The cursor should be here:> <\e[D\e[D" 
readline 

Vedi http://ascii-table.com/ansi-escape-sequences.php per maggiori informazioni.

+1

Mark, ottengo "Il cursore dovrebbe essere qui:><← [D ← [D" in una console standard di Windows 7, le sequenze di escape non sono chiaramente interpretate, ma \ b è anche se deve essere seguito con un altro carattere . es. "stampa" Il cursore dovrebbe essere qui:> \ b "'indica" Il cursore dovrebbe essere qui: " – peter

+1

Windows non interpreta gli escape ANSI. Non penso di poter essere sviluppato su una macchina Windows; Mi sentirei come se stessi saltando costantemente attraverso i cerchi. – d11wtq

+0

@Mark: presenta delle sfide ma i tuoi clienti devono essere in grado di eseguire il tuo codice e poiché la maggior parte dei clienti ha Windows è il modo più semplice. Per quanto riguarda la roba ansi, ci sono gemme che dovrebbero renderlo possibile ma sono riluttante a usarle per un lavoro così semplice. Dopotutto se \ b funziona (ovviamente no ansi), perché dovrebbe esserci qualcosa di simile per spostare il cursore? – peter

Problemi correlati