go-prompt

Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.

Github星跟踪图

go-prompt

Go Report Card
Software License
GoDoc
Build Status

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)
}

Projects using go-prompt

Features

Powerful auto-completion

demo

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

Flexible options

go-prompt provides many options. Please check option section of GoDoc for more details.

options

Keyboard Shortcuts

Emacs-like keyboard shortcuts are available by default (these also are the default shortcuts in Bash shell).
You can customize and expand these shortcuts.

keyboard 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

History

You can use Up arrow and Down arrow to walk through the history of commands executed.

History

Multiple platform support

We have confirmed go-prompt works fine in the following terminals:

  • iTerm2 (macOS)
  • Terminal.app (macOS)
  • Command Prompt (Windows)
  • gnome-terminal (Ubuntu)

Author

Masashi Shibata

License

This software is licensed under the MIT license, see LICENSE for more information.

主要指标

概览
名称与所有者c-bata/go-prompt
主编程语言Go
编程语言Makefile (语言数: 4)
平台
许可证MIT License
所有者活动
创建于2017-08-14 16:02:09
推送于2024-07-14 07:08:44
最后一次提交2021-03-03 17:56:52
发布数9
最新版本名称v0.2.6 (发布于 )
第一版名称v0.1.0 (发布于 )
用户参与
星数5.4k
关注者数53
派生数363
提交数380
已启用问题?
问题数159
打开的问题数84
拉请求数73
打开的拉请求数31
关闭的拉请求数20
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?