4.6 KiB
Changes
4.1.0
Many new features and improvements in this version:
-
New keybindings (working on Emacs, and in
Vim Insert Mode):CtrlWto cut the previous word at the cursorCtrlAto go back to the beginning of the lineCtrlYto paste the laste copy/paste buffer (see Registers)CtrlUto cut the whole line.
-
More precise Vim iterations:
- Iterations can now be applied to some Vim actions (
y4w,d3b)
- Iterations can now be applied to some Vim actions (
-
Implemented Vim registers:
- Yank/paste operations of any sort can occur and be assigned to registers.
- The default
""register - 10 numbered registers, to which bufffers are automatically added
- 26 lettered registers (lowercase), to which you can append with
"D(D being the uppercase of the"dregister) - Triggered in Insert Mode with
Alt"(buggy sometimes: goes back to Normal mode selecting a register, will have to fix this)
-
Unified iterations and registers:
- To copy to the
dregister the next 4 words:"d y4w - To append to this
dregister the cuttend end of line:"D d$" - In this example, the
dregister buffer is also the buffer in the default register"" - You could either:
- Paste 3 times this buffer while in Normal mode:
3p - Paste the buffer once in Insert mode:
CtrlY
- Paste 3 times this buffer while in Normal mode:
- To copy to the
-
History completions:
- The binding for the alternative history changed to
AltR(the normal remainsCtrlR) - By defaul the history filters only against the search pattern.
- If there are matches for this patten, the first occurence is insert (virtually)
- This is refreshed as the pattern changes
CtrlGto exit the comps, while leaving the current candidateCtrlCto exit and delete the current candidate
- The binding for the alternative history changed to
-
Completions:
- When a candidate is inserted virtually,
CtrlCto abort both completions and the candidate - Implemented global printing size: If the overall number of completions is biffer, will roll over them.
- When a candidate is inserted virtually,
Notes:
* The rl.Readline() function dispatch has some big cases, maybe a bit of refactoring would be nice
* The way the buffer storing bytes from key strokes sometimes gives weird results (like Alt" for showing Vim registers)
* Some defer/cancel calls related to DelayedTabContext that should have been merged from lmorg/readline are still missing.
4.0.0-beta
This version is the merge of maxlandon/readline
and lmorg/readline. Therefore it both integrates parts
from both libraries, but also adds a few features, with some API breaking changes (ex: completions),
thus the new 4.0.0 version. Remains a beta because maxlandon/readline code has not been thoroughly
test neither in nor of itself, and no more against lmorg/murex, it's main consumer until now.
Code
- Enhance delete/copy buffer in Vim mode
- DelayedTabContext now works with completion groups
Packages
- Added a
completerspackage, with a default tab/hint/syntax completer working with the go-flags library. - The
examplespackage has been enhanced with a more complete -base- application code. See the wiki
Documentation
- Merged relevant parts of both READMEs
- Use documentation from maxlandon/readline
New features / bindings
- CtrlL now clears the screen and reprints the prompt
- Added evilsocket's tui colors/effects, for ease of use & integration with shell. Has not yet replaced the current
seqColorvariables everywhere though
Changes I'm not sure of
- is the function leftMost() in cursor.go useful ?
- is the function getCursorPos() in cursor.go useful ?
3.0.0
- Added test (input line, prompt, correct refresh, etc)
- Added multiline support
- Added
DelayedTabContextandDelayedSyntaxWorker
2.1.0
Error returns from readline have been created as error a variable, which is
more idiomatic to Go than the err constants that existed previously. Currently
both are still available to use however I will be deprecating the the constants
in a latter release.
Deprecated constants:
const (
// ErrCtrlC is returned when ctrl+c is pressed
ErrCtrlC = "Ctrl+C"
// ErrEOF is returned when ctrl+d is pressed
ErrEOF = "EOF"
)
New error variables:
var (
// CtrlC is returned when ctrl+c is pressed
CtrlC = errors.New("Ctrl+C")
// EOF is returned when ctrl+d is pressed
// (this is actually the same value as io.EOF)
EOF = errors.New("EOF")
)
Version Information
readline's version numbers are based on Semantic Versioning. More details can
be found in the README.md.