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
- c-bata/kube-prompt : An interactive kubernetes client featuring auto-complete written in Go.
- rancher/cli : The Rancher Command Line Interface (CLI)is a unified tool to manage your Rancher server
- kris-nova/kubicorn : Simple. Cloud Native. Kubernetes. Infrastructure.
- cch123/asm-cli : Interactive shell of assembly language(X86/X64) based on unicorn and rasm2
- (If you create a CLI using go-prompt and want your own project to be listed here, Please submit a Github Issue.)
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
- Twitter: @c_bata_
- Github: @c-bata
- Facebook: Masashi Shibata
LICENSE
This software is licensed under the MIT License (See LICENSE ).