| Age | Commit message (Collapse) | Author |
|
There is no longer a need to explicitly redraw the window status
bar upon a mode change, it will happen anyway during the next UI
update.
|
|
$ ./configure --disable-help
shrinks the binary by about 20K on a x86_64 system.
|
|
|
|
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
|
|
Previously something like `5ifoo<Escape>:<Escape>` would insert
foo into the command prompt.
|
|
|
|
|
|
Fix #371
|
|
Fix #372
|
|
|
|
|
|
The vis_keys_feed function is currently unaffected by this change.
It still creates individual undo points. While this is probably
undesirable from an API point of view, it keeps the lua based tests
that use undo points working.
|
|
Previously if you had a mapping for both `a` and `ab` the latter would
in effect be unreachable because the greedy search would always match
and then execute the former. With the new behavior we keep reading keys
until we have a non ambigious sequence. That is after pressing `a` nothing
will happen, if the next key is a `b` we will execute the `ab` mapping
otherwise we will perform `a` and whatever the action is for the next key.
Close #386
|
|
Fix #459
|
|
|
|
|
|
|
|
|
|
The handling of :unmap needs to be revisited at some point.
|
|
Do not take snapshots after every operation in insert/replace mode.
As an example up until now we would take a snapshot after every
<Backspace>/<Delete> press, hence when undoing changes each character
would be restored individually. The same applies for <C-w> and related
actions.
From now on we only snaphost when:
- transitioning from insert/replace mode to normal mode (but not when
switching to operator pending mode)
- an operation takes place from normal mode
- an idle time expires in normal/replace mode
|
|
They both perform a motion before changing mode.
|
|
|
|
Do not override implicit operator macro in command mode.
Fix #334
|
|
Make window status bar content configurable via Lua.
|
|
|
|
`<` needs a special treatment because it is used to denote symbolic
keys without it the shift left operator would not work.
|
|
|
|
This does only detect the simplest cases.
|
|
Since commit 197ab824206335eab7ceed774ddeccac18fafc09 visual line
and replace modes are child modes, hence we also have to consider
the window local key bindings of their respective parent modes.
For example in replace mode the key lookup chain is now as follows:
window local replace mode -> global replace mode ->
window local insert mode -> global insert mode
This fixes <Enter> behaviour in prompt for replace and visual line
modes.
|
|
Make replace mode a child of insert mode and visual line a
child of visual mode. This means any key binding for the
former is automatically available in the latter. Also keys
can not be unmapped solely from the child modes.
|
|
|
|
Switching to character wise visual mode is still different
than in vim because we do not distinguish between line
wise and charwise selections.
Close #149
|
|
|
|
|
|
|
|
|
|
This removes the tree based mode structures and instead merges
all keybindings in flat modes which uses some more memory but
will allow (per mode) run-time configurable key bindings.
Make sure to update/remove config.h.
|
|
|
|
A call to vis_prompt_show will now automatically switch to prompt
mode. Within the prompt leave/enter handlers the focused window
(vis->win) will still point to the document window not the one
referring to the prompt.
The selection marks '< and '> are now only updated when a visual
mode is left.
|
|
It currently works by switching to visual mode and then opening
the command prompt with a default range which refers to the
currently active selection.
|
|
|
|
Editing operation in prompt mode should not affect the default
register.
|
|
|
|
|
|
|
|
|
|
|