-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathRELEASE-2.51
129 lines (110 loc) · 6.44 KB
/
RELEASE-2.51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Release Notes for xvi 2.51
==========================
Martin Guy <[email protected]>, $DATE$
Since xvi-2.50, xvi now
Implements
- The :w>> command
and fixes bugs
- Inserting chars in the middle of the command line now works
- Filename completion with Tab no longer garbles the command line
- ^U to cancel a command line now clears the display too back to the :
- Character maps are now applied to text stuffed with :@ or :*
- Stuffing a character-based yank with :@ or :* adds a final newline
- text stuffed as commands from a yank buffer (e.g. "a@) is now mapped
- "ytx" when the character right of the cursor is an x now does nothing
instead of yanking up to the following x character (if any)
These last fixes make the maze-solving macros work :)
Thanks to Richard Lloyd for HP/UX portability fixes.
Since version 2.49, xvi now:
- Implements
- the U and = commands
- the +$, +$-n and +-n flags, to open a file near its end
- the -R flag to open files readonly
- the -c "command" flag, which may be given several times
- ignores the -w n flag for POSIX compliance
- the "autowrite", "beautify", "scroll", "showmode", "terse" and "writeany"
parameters
- Appending to yank buffers when they are named in upper case
- Control-@ in insert mode, to reinsert the last inserted text
- ~ on the LHS and RHS of a substitution, giving the last replacement text
and is now able to run the "Towers of Hanoi" problem-solving macros and
the maze-solving macros.
- Removes some undocumented features:
- The "autogrow" parameter. It is now as if it were always on
- The hundred-deep multi-level undo mechanism
- The :compare command
- The "equalsize" parameter, now as if it were always on
- The "edit" and "autonoedit" parameters
- Documents the xvi-specific :equalise command and the tabindent parameter
- Sets enumerated parameters' values by the shortest match, e.g. ":se iu=c"
- The :command line:
- Is no longer limited to 78 characters in length, thanks to John Vogel
- Has a simple line-editing capabilities using the left and right arrow keys,
home, end and ^W to delete the previous word, ^U to clear the line
- Does filename completion with the Tab key instead of the Esc key and
this is now only performed for commands which expect a filename
- Fixes all known screen-updating bugs:
- Modifying one pane of a split buffer with 'x' didn't update the other pane
- Undoing a "dl" used to leave the cursor in the wrong place
- It now uses termcap's left/backspace/down capabilities even if they are
longer than one character
- It no longer garbles the screen when deleting near the end of a wrapped line
- Hitting s on a tab character at the start of a wrapped line used not to
update the wrapped part until you hit escape.
- Improves the correctness and POSIX-compliance of several commands:
- "dw" at end of line used not to delete the last character
- "yl" or "dl" at end of line used not to yank/delete anything
- If a search fails, don't do the rest of a "redo"
- The execution of macros is halted if any motion or command fails
- Characters from the RHS of a mapping are now remapped if "remap" is set
- Doesn't remap initial RHS characters if they are the same as the LHS
- Parameter "remap" is now set by default
- ~ and ^_ now react to a preceding count
- ^Q is now a synonym for ^V
- Typing ^ Control-D in autoindent mode removes indentation for one line only
- :s/.../\u&/ now only capitalizes the first letter of the replacement text
- :s/pattern/% now uses the RHS of the last substitution
- "r" on an empty line (or Nr when less than N chars remain) now fails
- Control-@ is now disallowed on the :command line
- The Home and End keys now go to start and end of line, not of screen
- Key F10 now inserts #0 and F1 #1 in insert, replace and command modes
- When inserting a character-based yank, the cursor is left at the beginning
of the inserted text, not the end
- All 26 alphabetic yank buffers can now be used, not just 10 of them
- When lines are restored with an "undo", their marks are restored too
- When yanking to a named buffer the text is also copied to the unnamed buffer
- Lines of text about to be piped through a command are yanked first
- Spaces are allowed after :s and bare :s repeats the last substitution
- Command ":2,3" goes to line 3, not 2
- Environment variables LINES and COLUMNS now override other size settings
- The cursor is left in the correct position when undoing an undo
- ~ and % on the RHS os a substitution now respect the "magic" parameter
- ^ is only special at the start of a pattern, so you don't need to say \^
- Exit with non-zero status when receiving SIGHUP or SIGQUIT
- Let the interrupt character be something other than ^C if set with stty
- Restore the cursor position when going to a marked line using grave quote
- Make character range matches [abc] [^X] respect ignorecase properly
- Get command abbreviations :ma :s :su and :u right (mark/subst/suspend/undo)
- When the screen is resized and many buffers are open, it behaves better
- Fix deletion from start of line to a pattern that matches at start of line
- Fix cursor position when changing from mid of one line to start of another
- The handling of keyboard interrupts (Control-C) has been improved
- Repeat counts are ignored if an insert/replace is interrupted
- Macros in execution are aborted
- Infinitely-recursive macros and very long file reads can now be interrupted
- if stdin is not a terminal, SIGINT kills xvi immediately
- If it runs out of memory, it is not known to crash any more, though it may
still not be able to write the file out.
- Has its own unique test suite, able to match against screen contents.
- Has been built on AIX 7.1/7.2, CentOS 7, Crux Linux, Debian jessie, Fedora 18,
FreeBSD, HP-UX, NetBSD, OpenBSD, OpenSUSE QNX 6.5.0 and Ubuntu xenial using
GCC, clang and Tiny-C for i386, amd64, ARM-64, PowerPC-64 and IBM POWER8 CPUs
and on MSDOS with Borland Turbo C 2.0.
The termcap code has been tested against ncurses, GNU termcap and AIX curses.
- The test suite has been run on:
- AIX, CentOS, Debian, Fedora, Ubuntu: PASS
- NetBSD: Is seems to pass all tests but in reality nothing is tested
- OpenSUSE: The test suite fails with internal errors
- Compiles to just under 100KB of code (Unix/termcap port, clang -Os for i386)
Its source code can be obtained from http://sf.net/p/xvi and
its web site is at http://martinwguy.github.io/xvi