Categorygithub.com/lnsp/go-prompt
repositorypackage
0.1.1
Repository: https://github.com/lnsp/go-prompt.git
Documentation: pkg.go.dev

# README

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

demo

(This is a GIF animation of kube-prompt.)

Flexible options

go-prompt provides many options. All options are listed in Developer Guide.

options

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.

keyboard shortcuts

KeyBindingDescription
Ctrl + AGo to the beginning of the line (Home)
Ctrl + EGo to the End of the line (End)
Ctrl + PPrevious command (Up arrow)
Ctrl + NNext command (Down arrow)
Ctrl + FForward one character
Ctrl + BBackward one character
Ctrl + DDelete character under the cursor
Ctrl + HDelete character before the cursor (Backspace)
Ctrl + WCut the Word before the cursor to the clipboard.
Ctrl + KCut the Line after the cursor to the clipboard.
Ctrl + UCut/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.

History

Links

Author

Masashi Shibata

LICENSE

This software is licensed under the MIT License (See LICENSE ).