Tworzę aplikację Go do użycia w terminalu. Poniższy kod prosi użytkownika o wprowadzenie tekstu do terminalu.Wejście terminalu klucza kursora w 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)
}
}
}
Problem polega na tym, że użytkownik nie może używać strzałek w lewo i w prawo, aby przejść do właśnie wprowadzonego tekstu, aby go zmodyfikować. Gdy naciśnie strzałki, konsola wypisze znaki.
Wyjście:
Please input something and use arrows to move along the text left and right
hello^[[D^[[C^[[A^[[B
Jak zrobić przyciski strzałek zachowywać bardziej przyjazny dla użytkownika i niech człowiek nawigować po prostu wprowadzonym tekście, używając strzałek w prawo i lewo?
Chyba powinienem zwrócić uwagę na biblioteki takie jak termbox-go lub gocui, ale jak z nich korzystać dokładnie w tym celu, nie wiem.
Nie mogę zainstalować tej biblioteki. '$ go get github.com/carmark/pseudo-terminal-go' wyjścia 'pakiet github.com/carmark/pseudo-terminal-go \t terminal importu: nierozpoznany import ścieżki" terminal "' –
@MaximYefremov Zgadzam się. Chodziło raczej o podanie kodu dotyczącego implementacji terminala i faktu, że musi on zostać włączony w tryb raw. – VonC
Działa wspaniale, musisz zaimportować "github.com/carmark/pseudo-terminal-go/terminal" –