| Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Make window status bar content configurable via Lua.
|
|
|
|
|
|
Change tr command to split words, this won't properly work with
Unicode but should at least avoid unwanted non-word symbols and
be POSIX conformant. A possible alternative would be to use
grep -o -E '\w+' while the -o option is not part of POSIX it
seems to be mostly supported. However the \w regex syntax might
not be supported.
Force ls(1) output to be linewise and surpress the same prefix.
Change sed invocation to only replace proper prefixes.
|
|
|
|
|
|
|
|
Based on a patch by Silvan Jegen.
Close #128, close #277
|
|
|
|
This caused issues on OpenBSD where it crashed the terminal.
Also on Mac OS X suspend via ^Z (Ctrl-Z) was missing a \r i.e.
the shell prompt was not properly redrawn.
While in principle user interfaces should not have to depend on
libtermkey, in practice this won't be an issue unless we are
adding a non-terminal based UI (which won't happen anytime soon).
This reverts commit 8f92b98848f9366e78c7aa824615bade83971513.
Close #311
|
|
|
|
|
|
A concrete user interface implementation should not have to depend
on libtermkey. Therefore the vis core now uses an independent instance
to parse keys.
|
|
|
|
|
|
Close #295
|
|
|
|
For now they are not mapped to any key by default, but can be enabled with:
:map! normal l <cursor-line-char-next>
:map! normal h <cursor-line-char-prev>
|
|
|
|
|
|
"open-file-under-cursor-new-cursor" should be
"open-file-under-cursor-new-window"
|
|
|
|
|
|
|
|
|
|
|
|
The following vi commands have been dropped:
- saveas
- xit
- !
The following commands are only recognized in their short form:
- e (edit)
- q (quit)
- s (substitute)
- w (write)
- r (read)
|
|
|