|
|
2 giorni fa | |
|---|---|---|
| .. | ||
| internal | 2 giorni fa | |
| .gitignore | 2 giorni fa | |
| CHANGELOG.md | 2 giorni fa | |
| LICENSE | 2 giorni fa | |
| Makefile | 2 giorni fa | |
| README.md | 2 giorni fa | |
| buffer.go | 2 giorni fa | |
| completion.go | 2 giorni fa | |
| document.go | 2 giorni fa | |
| emacs.go | 2 giorni fa | |
| filter.go | 2 giorni fa | |
| history.go | 2 giorni fa | |
| input.go | 2 giorni fa | |
| input_posix.go | 2 giorni fa | |
| input_windows.go | 2 giorni fa | |
| key.go | 2 giorni fa | |
| key_bind.go | 2 giorni fa | |
| key_bind_func.go | 2 giorni fa | |
| key_string.go | 2 giorni fa | |
| option.go | 2 giorni fa | |
| output.go | 2 giorni fa | |
| output_posix.go | 2 giorni fa | |
| output_vt100.go | 2 giorni fa | |
| output_windows.go | 2 giorni fa | |
| prompt.go | 2 giorni fa | |
| render.go | 2 giorni fa | |
| shortcut.go | 2 giorni fa | |
| signal_posix.go | 2 giorni fa | |
| signal_windows.go | 2 giorni fa | |
A library for building powerful interactive prompts inspired by python-prompt-toolkit, making it easier to build cross-platform command line tools using 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)
}
(This is a GIF animation of kube-prompt.)
go-prompt provides many options. Please check option section of GoDoc for more details.
Emacs-like keyboard shortcuts are available by default (these also are the default shortcuts in Bash shell). You can customize and expand these shortcuts.
| Key Binding | 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 the line before the cursor to the clipboard |
| Ctrl + L | Clear the screen |
You can use Up arrow and Down arrow to walk through the history of commands executed.
We have confirmed go-prompt works fine in the following terminals:
Masashi Shibata
This software is licensed under the MIT license, see LICENSE for more information.