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?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?