如何在 cli 应用程序 ( golang ) 中执行自动完成命令?

And*_*nev 6 go

我想在按“TAB”键“\t”时自动完成我的命令,并在按“ENTER”键“\r?\n”时执行命令。此代码例如:

package main
import (
    "bufio"
    "fmt"
)
func main() {
    reader := bufio.NewReader(os.Stdin)
    command, err := reader.ReadString('\n')
    if err != nil {
         fmt.Printf("%s\n", err)
    } else {
        fmt.Printf("%s\n", command)
    }
}
Run Code Online (Sandbox Code Playgroud)

One*_*One 1

如果您想要类似 bash 的功能,那么它比仅使用 bufio 阅读器要复杂得多。

检查https://github.com/chzyer/readline