2017-08-15 10:01:09 +00:00
# go-prompt ![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square) ![Go Report Card](https://goreportcard.com/badge/github.com/c-bata/go-prompt)
2017-08-14 18:36:30 +00:00
2017-08-13 07:52:27 +00:00
Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit ](https://github.com/jonathanslenders/python-prompt-toolkit ).
2017-08-16 07:02:53 +00:00
Easy building a multi-platform binary of the command line tools because written in Golang.
2017-07-03 14:36:56 +00:00
2017-08-15 10:01:09 +00:00
```go
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)
}
```
2017-07-17 13:32:13 +00:00
2017-08-07 15:19:51 +00:00
#### Projects using go-prompt
2017-07-17 13:32:13 +00:00
2017-08-07 15:19:51 +00:00
* [kube-prompt : An interactive kubernetes client featuring auto-complete written in Go. ](https://github.com/c-bata/kube-prompt )
2017-08-17 15:31:15 +00:00
* (If you create a CLI using go-prompt and want your own project to be listed here, Please submit a Github Issue.)
* (If you can't think of CLI ideas, you might want to look at the [projects using python-prompt-toolkit ](https://github.com/jonathanslenders/python-prompt-toolkit#projects-using-prompt_toolkit ).)
2017-07-16 18:41:00 +00:00
2017-08-12 14:43:35 +00:00
## Features
2017-08-15 10:01:09 +00:00
### Powerful auto-completion
2017-08-16 07:02:53 +00:00
[![demo ](https://github.com/c-bata/assets/raw/master/go-prompt/kube-prompt.gif )](https://github.com/c-bata/kube-prompt)
2017-08-15 10:01:09 +00:00
(This is a GIF animation of kube-prompt.)
2017-08-13 07:52:27 +00:00
### Flexible options
2017-08-12 14:43:35 +00:00
2017-08-13 07:52:27 +00:00
go-prompt provides many options. All options are listed in [Developer Guide ](./DEVELOPER_GUIDE.md ).
2017-08-12 14:43:35 +00:00
2017-08-16 07:02:53 +00:00
[![options ](https://github.com/c-bata/assets/raw/master/go-prompt/prompt-options.png )](#flexible-options)
2017-08-13 07:52:27 +00:00
### 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.
2017-08-12 14:43:35 +00:00
2017-08-16 07:02:53 +00:00
[![keyboard shortcuts ](https://github.com/c-bata/assets/raw/master/go-prompt/keyboard-shortcuts.gif )](#keyboard-shortcuts)
2017-08-12 14:43:35 +00:00
2017-08-13 07:52:27 +00:00
KeyBinding | Description
--------------------|---------------------------------------------------------
< kbd > Ctrl + A< / kbd > | Go to the beginning of the line (Home)
< kbd > Ctrl + E< / kbd > | Go to the End of the line (End)
< kbd > Ctrl + P< / kbd > | Previous command (Up arrow)
< kbd > Ctrl + N< / kbd > | Next command (Down arrow)
< kbd > Ctrl + F< / kbd > | Forward one character
< kbd > Ctrl + B< / kbd > | Backward one character
< kbd > Ctrl + D< / kbd > | Delete character under the cursor
< kbd > Ctrl + H< / kbd > | Delete character before the cursor (Backspace)
< kbd > Ctrl + W< / kbd > | Cut the Word before the cursor to the clipboard.
< kbd > Ctrl + K< / kbd > | Cut the Line after the cursor to the clipboard.
< kbd > Ctrl + U< / kbd > | Cut/delete the Line before the cursor to the clipboard.
2017-08-12 14:43:35 +00:00
2017-08-15 10:01:09 +00:00
### History
2017-08-12 14:43:35 +00:00
2017-08-15 10:01:09 +00:00
You can use up-arrow and down-arrow to walk through the history of commands executed.
2017-07-16 18:41:00 +00:00
2017-08-16 07:02:53 +00:00
[![History ](https://github.com/c-bata/assets/raw/master/go-prompt/history.gif )](#history)
2017-07-03 14:36:56 +00:00
2017-07-16 17:58:51 +00:00
2017-08-13 07:52:27 +00:00
## Links
2017-07-16 17:58:51 +00:00
2017-08-17 15:31:15 +00:00
* [Developer Guide ](./DEVELOPER_GUIDE.md ).
* [GoDoc ](http://godoc.org/github.com/c-bata/go-prompt ).
2017-08-09 03:50:16 +00:00
2017-08-12 14:43:35 +00:00
## Author
2017-08-09 03:50:16 +00:00
2017-08-12 14:43:35 +00:00
Masashi Shibata
2017-08-09 03:50:16 +00:00
2017-08-12 14:43:35 +00:00
* Twitter: [@c\_bata\_ ](https://twitter.com/c_bata_/ )
* Github: [@c-bata ](https://github.com/c-bata/ )
2017-08-09 03:50:16 +00:00
## LICENSE
This software is licensed under the MIT License (See [LICENSE ](./LICENSE ) ).
2017-08-15 10:01:09 +00:00