| Age | Commit message (Collapse) | Author |
|
I and A creates a new cursor at start/end of every selected line.
|
|
They try to match C-like function definitions. The inner variant
only contains the function body.
|
|
They behave not like in vim, but instead try to find the
start/end of C-like function definitions.
The first character stands for the direction [ for backwards,
] for forwards. The second character denotes the start [ or
end ] respectively.
|
|
|
|
Also text objects in visual mode should now work better.
|
|
This commits introduces the following keybindings, in normal mode:
CTRL-N select word the cursor is currently over, switch to visual mode
CTRL-P remove least recently added cursor
ESC if a selection is active, clear it.
Otherwise dispose all but the primary cursor.
In visual mode:
CTRL-N create new cursor and select next word matching current selection
CTRL-X clear (skip) current selection, but select next matching word
CTRL-P remove least recently added cursor
|
|
|
|
|
|
|
|
The operator creates a new cursor at the start of every line covered
by the given range.
It is currently only available as CTRL+O in visual mode.
|
|
This cleans up the existing selection handling code and adds the
necessary bits to eventually support multiple cursors/selections.
The cursor position is kept track of using marks, which means
retrieving the cursor position is no longer a constant time operation.
Furthermore the terminal cursor is no longer used, instead the whole
window is redrawn after every cursor movement.
|
|
By now ui-curses.[hc] are the only files dealing directly with
curses related functions. Integration of a proper mainloop is
still pending.
|
|
|
|
|
|
Enable/disable by setting to 0/1 respectively:
:set show spaces=0 tabs=0 newlines=1
|
|
View should only display the file content, but not modify it.
|
|
Currently the following arguments are accepted:
{count} Go to older text state {count} times.
{N}s Go to older text state about {N} seconds before.
{N}m Go to older text state about {N} minutes before.
{N}h Go to older text state about {N} hours before.
{N}d Go to older text state about {N} days before
|
|
|
|
|
|
If no range is given then stdin is passed through which allows
interactive usage as in
:!ls -1 *.c | slmenu
For this to work the command needs to use stderr for its user
interface and write any data for vis to stdout.
|
|
Win -> View, window_* -> view_*
|
|
|
|
Therefore vis->win->text->data becomes vis->win->file->text.
|
|
This fixes #45
|
|
|
|
|
|
|
|
Once again show mode in window status bar.
|
|
|
|
|
|
|
|
|
|
This adds yet another layer of indirection and stores vi related
stuff which is associated with a given text but shared among all
windows displaying it (e.g. marks).
This will also help if one wants to keep texts arround which
aren't currently displayed.
|
|
In theory only ui-curses.[hc] should depend on curses, however in
practice keyboard input is still handled in vis.c. Furthermore the
syntax definitions as well as keyboard bindings and selection code
in window.c still depends on some curses constants.
There is also a slight regression in that the window status bar
does not show the current mode name. This and related global state
should be eliminated in the future.
|
|
Comments like "/***/" with odd number of asterisks are handled like
normal comments now. Previously they were handled like unfinished
comments.
|
|
|
|
|
|
|
|
This closes #35 and closes #36.
|
|
Everything that is a unique prefix should now be allowed
for a given command.
|
|
This might or might not work depending on terminfo entries etc.
|
|
|
|
|
|
If time permits I still want to experiment with different editing
paradigms and write a proper nano/sandy/sam frontend but at the
moment it is just bitrotting and not very useful.
|
|
The proper way to do this would be to use a trie, however the ugly
regexes do the trick for now.
|
|
|
|
|
|
|
|
|
|
|