go-prompt
Library for building a powerful interactive prompt, inspired by python-prompt-toolkit. Easy building a multi-platform binary of the command line tools because written in Golang.
package main
import (
"fmt"
"github.com/c-bata/go-prompt"
)
func completer(d prompt.Document) []prompt.Suggest {
s := []prompt.Suggest{
{Text: "users", Description: "Store the username and age"},
{Text: "articles", Description: "Store the article text posted by user"},
{Text: "comments", Description: "Store the text commented to articles"},
}
return prompt.FilterHasPrefix(s, d.GetWordBeforeCursor(), true)
}
func main() {
fmt.Println("Please select table.")
t := prompt.Input("> ", completer)
fmt.Println("You selected " + t)
}
Projects using go-prompt
Features
Powerful auto-completion
(This is a GIF animation of kube-prompt.)
Flexible options
go-prompt provides many options. All options are listed in Developer Guide.
Keyboard Shortcuts
Emacs-like keyboard shortcut is available by default (it's also default shortcuts in Bash shell). You can customize and expand these shortcuts.
KeyBinding
Description
Ctrl + A
Go to the beginning of the line (Home)
Ctrl + E
Go to the End of the line (End)
Ctrl + P
Previous command (Up arrow)
Ctrl + N
Next command (Down arrow)
Ctrl + F
Forward one character
Ctrl + B
Backward one character
Ctrl + D
Delete character under the cursor
Ctrl + H
Delete character before the cursor (Backspace)
Ctrl + W
Cut the Word before the cursor to the clipboard.
Ctrl + K
Cut the Line after the cursor to the clipboard.
Ctrl + U
Cut/delete the Line before the cursor to the clipboard.
History
You can use up-arrow and down-arrow to walk through the history of commands executed.
Links
Author
Masashi Shibata
LICENSE
This software is licensed under the MIT License (See LICENSE ).