commit | 87df30271f472d7f4b1f52dd3965be5863f042a6 | [log] [tgz] |
---|---|---|
author | Cheney <me@chenye.org> | Wed Sep 23 05:43:48 2015 |
committer | Cheney <me@chenye.org> | Wed Sep 23 05:43:48 2015 |
tree | 3bd078330ae34f03fa10a09aae0375f45f35865a | |
parent | 2622435bfae6013d98d249119f6038b0f714329d [diff] |
improve readme
Readline is a pure go implementation for GNU-Readline kind library.
WHY: Readline will support most of features which GNU Readline is supported, and provide a pure go environment and a MIT license.
You can read the source code in example/main.go.
import "github.com/chzyer/readline" rl, err := readline.New("> ") if err != nil { panic(err) } defer rl.Close() for { line, err := rl.Readline() if err != nil { // io.EOF break } println(line) }
rl, err := readline.NewEx(&readline.Config{ Prompt: "> ", HistoryFile: "/tmp/readline.tmp", }) if err != nil { panic(err) } defer rl.Close() for { line, err := rl.Readline() if err != nil { // io.EOF break } println(line) }
import ( "log" "github.com/chzyer/readline" ) rl, err := readline.New("> ") if err != nil { panic(err) } defer rl.Close() log.SetOutput(l.Stderr()) // let "log" write to l.Stderr instead of os.Stderr go func() { for _ = range time.Tick(time.Second) { log.Println("hello") } }() for { line, err := rl.Readline() if err != nil { // io.EOF break } println(line) }
Meta
+B
means press Esc
and n
separately.
Users can change that in terminal simulator(i.e. iTerm2) to Alt
+B
Shortcut | Comment | Support |
---|---|---|
Ctrl +A | Beginning of line | Yes |
Ctrl +B / ← | Backward one character | Yes |
Meta +B | Backward one word | Yes |
Ctrl +C | Send io.EOF | Yes |
Ctrl +D | Delete one character | Yes |
Meta +D | Delete one word | Yes |
Ctrl +E | End of line | Yes |
Ctrl +F / → | Forward one character | Yes |
Meta +F | Forward one word | Yes |
Ctrl +G | Cancel | Yes |
Ctrl +H | Delete previous character | Yes |
Ctrl +I / Tab | Command line completion | No |
Ctrl +J | Line feed | Yes |
Ctrl +K | Cut text to the end of line | Yes |
Ctrl +L | Clean screen | No |
Ctrl +M | Same as Enter key | Yes |
Ctrl +N / ↓ | Next line (in history) | Yes |
Ctrl +P / ↑ | Prev line (in history) | Yes |
Ctrl +R | Search backwards in history | Yes |
Ctrl +S | Search forwards in history | Yes |
Ctrl +T | Transpose characters | Yes |
Meta +T | Transpose words | No |
Ctrl +U | Cut text to the beginning of line | No |
Ctrl +W | Cut previous word | Yes |
Backspace | Delete previous character | Yes |
Meta +Backspace | Cut previous word | Yes |
Enter | Line feed | Yes |
If you have any question, please submit an GitHub Issues and any pull request is welcomed :)