| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
$ ./configure --disable-help
shrinks the binary by about 20K on a x86_64 system.
|
|
This can also be implemented using Lua, if desired.
|
|
By now we should have the necessary Lua API to implement this as an
extension.
|
|
|
|
This results in a slightly smaller binary while still avoiding #ifdefs.
Close #494
|
|
These do not really belong into the editor core. If desired they
could be implemented in Lua instead.
|
|
|
|
|
|
Unlike vim we do not respect `:set expandtab` here.
|
|
Fix #491
|
|
Fixes CID 141179
|
|
The character following a movement_key command should not be subject to
keymap translation since it is used to find characters in the document.
|
|
We currently have the invariant that the primary cursor is always
placed within the visisble viewport.
Previously view_cursors_new would automatically make the new cursor
primary. This in turn causes the viewport to be adjusted triggering
lots of unnecessary redraws. As a result commands creating many new
selections might become unbearably slow.
Instead the caller has to explicitly make the new cursor primary.
|
|
|
|
The cursor needs to be adjusted after every insertion, not
just the first one. The implementation is currently rather
ugly because it clobbers the dot register with pseudo keys.
|
|
Does not work for the current implementation of `O` because the
"lookbehind" i.e. second to last processed key is `<Up>` and not
`<Enter>`.
Fix #383
|
|
A count of zero is different than specifying no count.
This fixes `0G` which previously moved to the start of the file.
Fix #474
|
|
Strictly speaking we actually not wrap around, but search
backwards starting from the first cursor. This is seems
more useful when for example renaming a local variable
but not starting from its declaration.
Close #305
|
|
This was never really implemented properly and is not really needed
anyway.
Close #345
|
|
Fix #372
|
|
|
|
|
|
|
|
Shows hex values up to the next UTF-8 encoded character.
|
|
|
|
|
|
|
|
Fixes CID 139067.
|
|
|
|
|
|
|
|
Move all signal handling code out of "library" code into user application.
|
|
libtermkey's initialization routine tries to write to the underlying
file descriptor which fails with EBADF if it is opened read only.
This was a problem in the terminal restore code called after a shell
command is executed.
It should fix the following:
$ echo foo | vis - > bar
:!/bin/sh
exit
where before vis would no longer accept any input.
|
|
The `:!` command did redirect stdout to a pipe which was used by
`vis-menu` to return the selected entry. However, this breaks
other interactive commands such as `:!/bin/sh` where command
output was never displayed. Instead we modified `vis-menu` to
re-open /dev/tty for its user interface which makes it work
as a regular filter `:|`
This patch also obsoletes the interactive flag previously passed
to the vis_pipe function. Interactive mode is instead enabled
by piping an invalid range.
|
|
The first argument is the file object while the second argument denotes
the full path to which it will be written. Path might be `nil` if the
file is going to be written to stdout.
The Lua function is expected to return a boolean value indicating whether
the write operation should proceed or be aborted.
|
|
Indicating that the event is triggered *after* a successfull write.
|
|
If the shell command is omitted, the last shell command (of any type)
is substituted. The most recently used shell command is stored in a
new register currently named `!`.
|
|
Do not initalize curses UI before it is actually needed.
Move vis command line argument parsing logic into main.c.
This fixes `vis -v` output and exit status.
Fix #351
|
|
Do not alter the text if <Escape> is pressed instead of a regular
replacement character.
|
|
In normal mode `r<key>` was previously implemented as `R<key><Escape>`.
However this does not work when the replacement key is `<Enter>` to insert
a new line, because in replace mode new lines are not overwritten.
The count is now also respected.
Also properly support `r` in visual mode where before it was aliased to `c`.
Fix #190
|
|
They both perform a motion before changing mode.
|
|
|
|
|
|
Make cursor placement after scrolling (half) pages up/down less arbitrary.
Close #390, fix #391
|
|
Close #392
|
|
The character following the `r` command in normal mode should be
treated as regular input given in insert/replace mode, that is no
tranformation should be applied. Temporarily disable the language
map for this reason.
Close #382
|
|
The shell script should be reviewed for quoting issues, currently
it allows command injections as in:
$ vis-complete "'; rm -f some-file; echo "
However it is intended for interactive usage and from within vis
it is only ever called with a valid completion prefix.
The file name completion logic now supports nested directories.
Close #347
|
|
The behavior is not exactly the same because vim preserves any
existing white spaces wihle we remove existing ones but do
not insert additional ones.
The vim behavior (essentially only deleating new lines) can be
achived using something like:
:x/\n/d
Close #374
|
|
This has the effect that ~ and $HOME will be expanded by the shell.
However it also opens files which do not yet exist.
Fixes #346
|