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

时间:2016-04-28 12:06:40

标签: go

我想在按下" TAB"时自动完成我的命令。关键" \ t"按" ENTER"并执行命令key" \ 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)
    }
}

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

按照完整包master branch

确保将 Go 包的 bin 路径添加到 ~/.bashrc

echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc

已针对 go1.16.3 版本进行测试

go get -u github.com/posener/complete/v2/gocomplete
COMP_INSTALL=1 gocomplete
source ~/.bashrc