| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Some people might prefer this for <Backspace> behavior. Except for that
and debugging purposes using `ga` and `g8` it is not yet that useful.
|
|
Fix #531
|
|
https://mentors.debian.net/package/vis
|
|
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
|
|
|
|
Do not create an invalid cursor when no further match exists.
|
|
It is no longer possible to change the used syntax by assigning to the
`win.syntax = name` field, instead the function win:set_syntax(name)`
should be called.
The distinction between filetype and syntax lexer to use should probably
be clarified/cleaned up at some point.
|
|
The intention of this is not to slowly reimplement curses but to provide
a minimal working terminal UI backend which can also be used for debugging,
fuzzing and in environments where curses is not available.
Currently no attempt is made to optimize terminal output. The amount of
flickering will depend on the smartness of your terminal emulator.
|
|
Use pull instead of push based model for display code. Previously view.c
was calling into the ui frontend code, with the new scheme this switches
around: the necessary data is fetched by the ui as necessary.
The UI independent display code is moved out of view.c/ui-curses.c into
vis.c. The cell styles are now directly embedded into the Cell struct.
New UI styles are introduced for:
- status bar (focused / non-focused)
- info message
- window separator
- EOF symbol
You will have to update your color themes.
The terminal output code is further abstracted into a generic ui-terminal.c
part which keeps track of the whole in-memory cell matrix and #includes
ui-terminal-curses.c for the actual terminal output. This architecture
currently assumes that there are no overlapping windows. It will also
allow non-curses based terminal user interfaces.
|
|
|
|
Previously the following had no effect:
$ echo foo | vis +"set syntax markdown" -
Fix #512
|
|
|
|
$ ./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 `!`.
|