Sto creando un'applicazione Go per l'utilizzo in un terminale. Il seguente codice chiede a un utente di inserire il testo nel terminale.Ingresso terminale chiave a cursore in Go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
for {
fmt.Println("Please input something and use arrows to move along the text left and right")
in := bufio.NewReader(os.Stdin)
_, err := in.ReadString('\n')
if err != nil {
fmt.Println(err)
}
}
}
Il problema è che l'utente non può utilizzare le frecce destra e sinistra per percorrere il testo appena immesso per modificarlo. Quando preme le frecce, la console stampa i segni ^[[D^[[C^[[A^[[B
.
L'output:
Please input something and use arrows to move along the text left and right
hello^[[D^[[C^[[A^[[B
Come fare tasti freccia si comportano più user-friendly e lasciare che un essere umano naviga lungo il testo appena immesso, utilizzando le frecce destra e sinistra?
Immagino che dovrei prestare attenzione alle librerie come termbox-go o gocui ma come utilizzarle esattamente per questo scopo, non lo so.
non posso installare questa libreria. '$ Andare a prendere github.com/carmark/uscite pseudo-terminal-go' ' pacchetto github.com/carmark/pseudo-terminal-go \t importazioni terminale: non riconosciuta percorso di importazione "terminale" ' –
@MaximYefremov sono d'accordo. Era più per dare un esempio di codice riguardante l'implementazione di un terminale, e il fatto che ha bisogno di essere messo in modalità raw. – VonC
Funziona alla grande, devi importare "github.com/carmark/pseudo-terminal-go/terminal" –