| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
... and make search_{forward,backward} wrapper to that function.
|
|
same as buffer commit Array is completely visible
|
|
|
|
|
|
These are currently not mapped by default but can be enabled by mappings
using their virtual key names.
|
|
This renames the functions and constants implementing the to/till motions.
The new names should indicate that matches are only returned within the
current line (not globally). Apart from the changed virtual key/command
name this contains no functional changes.
|
|
|
|
Close #703
Fix #670
|
|
|
|
|
|
Correctly handle single letter words surrounded by special symbols, e.g. [c].
Fix #643
|
|
This was completely broken since 71eab6d5d72145f17ab3d4c87945ac12176ae8e9
and even before never really worked as one would expect.
If anything it should be implemented like the jump list using marks.
|
|
|
|
We now use ' to refer to marks. Mark a is set using 'am and restored
using 'aM while this is slightly harder to type than ma and 'a it is
consistent with register usage for yank/put and allows a default
mark to be used which is handy for quick selection manipulation
primitives.
|
|
The key binding remain the same, but the selections are now stored on
a per-buffer basis.
|
|
Rename some structures, add typedefs for function pointers, remove unused
arguments from vis_run.
|
|
As currently implemented this does not properly integrate with
multiple cursor support. The functionality should be provided
in a layer higher up.
The jumplist and changelist need to be redesigned, for now they
are broken.
|
|
As currently implemented this will only work for operations which are
individually fast, but repeated many times (e.g. `1000000itext<Escape>`).
|
|
Some people might prefer this for <Backspace> behavior. Except for that
and debugging purposes using `ga` and `g8` it is not yet that useful.
|
|
The following key mappings should result in the vi behavior:
:map! normal n <vis-motion-search-repeat>
:map! normal N <vis-motion-search-repeat-reverse>
The default remains unchanged, that is `n` (`N`) always searches towards
the end (start) of the file.
Fix #470
|
|
|
|
If the starting position is:
* on a space or tab use the `w` motion
* on the last letter of a word use `l` or `e` depending on whether
a count was given. This also applies for single letter words.
* otherwise use the `e` motion
As in vim `cw` and `dw` behave differently, whether that is desirable
remains to be seen.
Might fix #521
|
|
|
|
Some motions should fail (i.e. keep the initial position) when
the specified count can not be satisfied exactly.
Examples include t, f, T, and F.
Fix #497
|
|
These do not really belong into the editor core. If desired they
could be implemented in Lua instead.
|
|
|
|
|
|
This should avoid undefined pointer comparisons.
|
|
|
|
|
|
|
|
No functional changes.
|
|
|
|
Do not override implicit operator macro in command mode.
Fix #334
|
|
They behave like an inclusive motion, but only if they are also
linewise (which they are by default).
This should make `yjp` and `ykp` yank both the current and
the next/previous line when the cursor is at the start of
a line.
See also 532f52e9e52b98dc5749396f7353295418e0227a and #237
|
|
|
|
|
|
Given the following text with no trailing new line at the end of line2,
where # denotes the cursor position:
#ine1 of text
line2 of text
the command yjp should produce
line1 of text
#ine1 of text
line2 of text
line2 of text
where previously it would wrongly result in
line1 of text
#ine1 of text
line2 of text
|
|
This partially reversts the "Fix to/till movements" commit
0d4093c3371079c5f75055338f0341f684542465
The pos += len hunk was interfering with other code which does
not want this behavior. The original issue should be fixed directly
within the to/till movements.
|
|
There exist two typical ways to use an array:
1) to hold pointers to externally allocated memory regions
Use array_init(...) for initialization, an element has the
size of a pointer. Use the functions suffixed with `_ptr'
to manage your pointers. The cleanup function array_release_full
must only be used with this type of array.
2) to hold arbitrary sized objects
Use array_init_sized(...) to specify the size of a single
element. Use the regular (i.e. without the `_ptr' suffix)
functions to manage your objects. array_get will return a
pointer to the object stored within the array.
|
|
|
|
|
|
A motion function can be registered with vis_motion_register(...)
the returned id (if non negative) can then be used as an argument
to vis_motion(...)
|
|
This allows them to be placed into the read only ELF section.
|
|
The used regular expression \<%s\> where %s refers to the
search term/word under cursor is not POSIX compliant but
happens to work on both musl and glibc.
First try the alternate syntax [[:<:]]%s[[:>:]] which works
on Mac OS X. The reason it is done in this order is that
musl/glibc will reject it as invalid pattern when compiling
while the Mac OS X libc will accept \<%s\> but not match
anything.
Based on a patch by Erlend Fagerheim.
|
|
Moves to the given percentage of the file in bytes (not lines).
This is useful when dealing with huge files because it is a constant
time operation. Performance could still be improved by adapting the
display code not to rely on line numbers at all.
|
|
There are cases where zero can also be a legitimate count.
|
|
|