AminetAminet
Search:
85026 packages online
About
Recent
Browse
Search
Upload
Setup
Services

text/edit/nextvi.lha

Mirror:Random
Showing: m68k-amigaos iconppc-amigaos iconppc-morphos iconi386-aros iconi386-amithlon iconppc-warpup iconppc-powerup icongeneric iconother icon
No screenshot available
Short:Next vi clone
Author:"Kyryl Melekhin" k.melekhin at gmail.com
Uploader:polluks+aminet sdf org (Stefan Haubenthal)
Type:text/edit
Version:2.1
Architecture:ppc-morphos
Date:2025-11-08
Download:text/edit/nextvi.lha - View contents
Readme:text/edit/nextvi.readme
Downloads:1597

NEXTVI PATCHES
==============
Optional patches for Nextvi.
Apply: patch < name.patch

64bit.sh
--------------
Convert entire codebase to 64 bit integers instead of 32 bit.
This will enable Nextvi to read files & buffers up to 9,223,372 Terabytes.
In addition, this will improve performance on 64 bit CPUs due to
matching pointer <---> integer alignment and possibly more compiler
optimizations.
Run this after you've applied the patches.

gen-widechars.sh
--------------
A script I use to update zwchars and dwchars in uc.c

arrowkeys_normal.patch
--------------
Adds arrows keys support in normal mode.

arrowkeys_insert.patch
--------------
Adds arrows keys support in insert mode.

threaded_search.patch
--------------
Multithreaded version of lbuf_search(). Adjust the number of threads in use
and buffer stepping in lbuf.c Ensure that your system supports posix threads,
aka libpthread

hl_part.patch
--------------
Allow syntax highlight to continue past the terminal dimensions up to a
certain limit. To customize the depth, adjust LEDFORW and LEDBACK definitions
in led.c
Patch will alter the meaning of <^> <$> assertions in syntax highlight
regex, as the line would be considered to start/end beyond the visible columns.
Patch works in reverse direction and with reordered text.

hl_naive.patch
--------------
Allow syntax highlight to continue past the terminal dimensions unlimited.
Performance will degrade on very long lines.

debug.patch
--------------
Cleanup reachable memory upon termination.
Use for debugging.
Note: in some features leaks won't be freed - for example hlw (which is not
enabled by default) Also initializes sdense in regex.c so that valgrind stops
freaking out.

grep.patch
--------------
Adds a special temporary buffer /grep/ much like the default /hist/ or /fm/.
When new keybind ^x is executed vi performs fs_search on every file and
stores the results in /grep/ buffer. At last, user will be switched to /grep/.
Line information is stored and displayed with special new syntax highlight
rules. Searched keyword is also highlighted.  Use the familiar keybind ^i or
TAB on the wanted line to immediately open the file and goto the line
specified. To quickly open /grep/ use new keybind: vx
The format of the lines stored is specifically designed to mirror the output of
grep -r -n "str" .
The feature can be substituted with a pipe command in case of a higher performing
grep implementation or loading of cached results from script.

rstr.patch
--------------
Adaptation from upstream Neatvi, where simple operations are optimized by
running a specialized search code instead of full regex engine. rstr can
yeild up to 3X faster search on non regex patterns. This is not included in
base nextvi due to underlying complexity.

stdin_pipe.patch
--------------
Allows the user to use vi like less except you need to specify
- as command line arg (just like in vim).
Example:
$ dmesg | vi -

ec_closebuf.patch
--------------
Allows the user to close the buffer using new ex command :cx
Specify a number as an arg for what buffer to close.
Specifying no argument(s) will close the current buffer.
When the buffer is closed all buffers above will be shifted
and renumbered.
Range can be supplied like so :cx0-5
This will close buffers 0 to 5 inclusive
Omiting the parameter of the range assumes current buffer
index for that parameter (not inclusive and either begin or end
of the range). Example :cx-5 or :cx5-

filetype_shebang.patch
--------------
Detect and set the corresponding filetype based on the shebang
or specific data in the file. Currently supports only shell
and python.

kbd_layout.patch
--------------
Changes hjkl to work well with other keyboard layouts.
In this example hjkl is changed to yneo (workman keyboard layout)
Note: this patch can be used as a base for remapping any base keybinds.

quickexit.patch
--------------
Added quickexit to insert mode keybind: kj
It's important to understand that this has a caveat, if input comes too fast,
for example a paste from terminal and the sequence has "kj" in it, insert
mode will be cancelled mid way and paste will be wrong. Luckily this almost
never happens because such letter combination is extremely rare.
Delay time (in ms) can be set via :se qe=N or disabled by setting N to 0.

hl_mark.patch
-------------
Adds new ex option "mhl" which will highlight lbuf marks. Each mark has
different color up to 16. Higher marks may duplicate the colors.
Lazy redraw, use <^L> if needed.

c_option.patch
-------------
Adds -c commandline option. This can be used to pass in ex commands instead
of EXINIT.

exrc.patch
-------------
Adds support for reading ~/.exrc file. This can be used to pass in ex
commands instead of EXINIT.

exrc-xdg.patch
-------------
Adds XDG dir support for exrc.patch.

readonly.patch
-------------
Adds new ex option "ro" and commandline readonly option -R

remove_vla_cliterals.patch
--------------
Removes variable length arrays and compound literals for portability reasons.

undojump.patch
--------------
Adds a new keybind ^o which allows to jump through the undo marks
without actually doing undo.

undo_branches.patch
--------------
Adds a basic multi-level undo implementation. Use the new ex command :up
to print the divergent changes. Each path has an index, to switch to it
use :up with a number as an argument. Example: :up1
The current undo branch is stored as the last index before swapping.

alternate-w-behaviour.patch
--------------
Implements more vim/like d/c/yw

ac_context.patch
--------------
Improvements to autocomplete, now the word completion will also use
text that prefixes the insert when it makes sense. Makes it possible
to autocomplete in more desired situations.

linewrap.patch
--------------
Soft line wrap proof of concept

ex-scripting.patch
--------------
Adds new commands :sc and :sx
NEXTVI_FT - current buffer filetype
NEXTVI_ROW - current line number
NEXTVI_OFF - current byte offset
NEXTVI_COFF - current character offset
NEXTVI_LINE - current line
NEXTVI_WORD - current word
:sc runs a command with the environment variables above
:sx runs a command with the environment variables above and
executes its stdout as ex commands

chunked_read.patch
--------------
Allows nextvi to read files in chunks instead of reading the whole
file into the memory right away. This patch optimizes the reading of
binary files, since it would be truncated earlier before loading
the whole file into memory.

record_input.patch
--------------
Adds ex option "rec". This option specifies a register in which
to record all user input. Makes it easier to record macros.

My current EXINIT setup:
--------------
How it works:
:led - temporarily disable redrawing the screen
:ish - enable interactive shell
:1io{\n}^^kA\n       \x1b - inserts macro on line 1 until \x1b
:1,3;0;$yaq - yank 3 lines into register q, excluding last newline
:u - undo insert
:inc (^(?\:(?\!^\.git).)+[^/]+$) always exclude .git folder from :fd
:pac - print autocomplete options
:led - allow screen redraw

Macros:
@q = creates structure like this:
{

}
@w = creates structure like this:
whatever {
	whatever
	a
}
@e = brings :e !p $c into ex prompt
Note: p is alias to printf. $c[0-9] is env var containing some path
@a = creates a comment like this:
/* whatever */
@s = from the cursor creates a comment like this:
/* whatever */
@d = uncomment /* */ comment
@x = indent % region left
@f = brings :cd !p $c into ex prompt
Note: p is alias to printf. $c[0-9] is env var containing some path
@l = bring !cp % %_|w|!git diff --no-index %_ % macro into ex prompt.
Use to create patch and diff files fast. It relies on
you not saving the file prior to running the macro.
@z = control character mapping placeholders

export EXINIT="$(printf '%b' 'led:ish:      1io{\n}kA\n	\x1b:1,3;0;$yaq:        1iA {jo}koa\x1b:;0;$yaw:     1i\\:e \!p $c\x1b:;0;$yae:     1iI/*A*/\x1b:;0;$yaa:     1ii/*A*/\x1b:;0;$yas:      1i/\/\*\n2x/\*\/\n2x\x1b:1,3;0;$yad:     1i>\%<<$\%<<\x1b:;0;$yax:     1i\\:\!cp \% \%_\\:w\\:\!git diff --no-index \%_ \%\x1b:;0;$yal:      1i\\:cd \!p $c\x1b:;0;$yaf:       1i\\:ph1 1 2 1^A\\:ph2 2 2 1^B\\:ph3 3 2 1^C\\:ph4 4 2 1^D\\:ph5 5 2 1^E\\:ph6 6 2 1^F\\:ph7 7 2 1^G\\:ph8 8 2 1^H\\:ph9 9 2 1^I\\:ph10 10 2 1^J\\:ph11 11 2 1^K\\:ph12 12 2 1^L\\:ph13 13 2 1^M\\:ph14 14 2 1^N\\:ph15 15 2 1^O\\:ph16 16 2 1^P\\:ph17 17 2 1^Q\\:ph18 18 2 1^R\\:ph19 19 2 1^S\\:ph20 20 2 1^T\\:ph21 21 2 1^U\\:ph22 22 2 1^V\\:ph23 23 2 1^W\\:ph24 24 2 1^X\\:ph25 25 2 1^Y\\:ph26 26 2 1^Z\\:ph27 27 2 1^[\\:ph28 28 2 1^\\\\\\:ph29 29 2 1^]\\:ph30 30 2 1^^\\:ph31 31 2 1^_\x1b:;0;$yaz:         inc (^(?\:(?\!^\.git).)+[^/]+$):u:1:pac:led')"


Contents of text/edit/nextvi.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                   40      40 100.0% -lh0- 04ed Nov  2 00:37 nextvi-2.1/.gitignore
[generic]                  347     928  37.4% -lh5- 1949 Nov  2 00:37 nextvi-2.1/64bit.sh
[generic]                  956    2555  37.4% -lh5- 87f1 Nov  2 00:37 nextvi-2.1/ac_context.patch
[generic]                  250     436  57.3% -lh5- fe9f Nov  2 00:37 nextvi-2.1/alternate-w-behaviour.patch
[generic]                 1535    4299  35.7% -lh5- 95f0 Nov  2 00:37 nextvi-2.1/arrowkeys_insert.patch
[generic]                  608    1445  42.1% -lh5- 1594 Nov  2 00:37 nextvi-2.1/arrowkeys_normal.patch
[generic]                 2136    5604  38.1% -lh5- e85f Nov  2 00:37 nextvi-2.1/cbuild.sh
[generic]                 1600    4355  36.7% -lh5- 50fe Nov  2 00:37 nextvi-2.1/chunked_read.patch
[generic]                 5290   13004  40.7% -lh5- 6461 Nov  2 00:37 nextvi-2.1/conf.c
[generic]                  930    2156  43.1% -lh5- 3e80 Nov  2 00:37 nextvi-2.1/c_option.patch
[generic]                 1511    3363  44.9% -lh5- 9dc6 Nov  2 00:37 nextvi-2.1/debug.patch
[generic]                  649    1633  39.7% -lh5- e2e3 Nov  2 00:37 nextvi-2.1/ec_closebuf.patch
[generic]                 1210    2506  48.3% -lh5- 191e Nov  2 00:37 nextvi-2.1/ex-scripting.patch
[generic]                10141   32727  31.0% -lh5- b62e Nov  2 00:37 nextvi-2.1/ex.c
[generic]                 1208    2772  43.6% -lh5- 0a7b Nov  2 00:37 nextvi-2.1/exrc-xdg.patch
[generic]                 1147    2427  47.3% -lh5- 1834 Nov  2 00:37 nextvi-2.1/exrc.patch
[generic]                  501     828  60.5% -lh5- 27de Nov  2 00:37 nextvi-2.1/filetype_shebang.patch
[generic]                  838    2459  34.1% -lh5- f801 Nov  2 00:37 nextvi-2.1/gen-widechars.sh
[generic]                  352     818  43.0% -lh5- 1f18 Nov  2 00:37 nextvi-2.1/gencodemap.sh
[generic]                 2323    5713  40.7% -lh5- aaf0 Nov  2 00:37 nextvi-2.1/grep.patch
[generic]                  747    1519  49.2% -lh5- 92a7 Nov  2 00:37 nextvi-2.1/hl_mark.patch
[generic]                 1121    2989  37.5% -lh5- 5abf Nov  2 00:37 nextvi-2.1/hl_part.patch
[generic]                  298     575  51.8% -lh5- f5fb Nov  2 00:37 nextvi-2.1/kbd_layout.patch
[generic]                 2535    8156  31.1% -lh5- c6f2 Nov  2 00:37 nextvi-2.1/kmap.h
[generic]                 4199   14192  29.6% -lh5- a7ff Nov  2 00:37 nextvi-2.1/lbuf.c
[generic]                 5297   15933  33.2% -lh5- bdca Nov  2 00:37 nextvi-2.1/led.c
[generic]                  525     848  61.9% -lh5- 052b Nov  2 00:37 nextvi-2.1/LICENSE
[generic]                  568    1041  54.6% -lh5- a723 Nov  2 00:37 nextvi-2.1/Makefile
[generic]                  202     281  71.9% -lh5- 91ec Nov  2 00:37 nextvi-2.1/man2ascii.sh
[generic]                 1353    3002  45.1% -lh5- 5b45 Nov  2 00:37 nextvi-2.1/quickexit.patch
[generic]                17748   53673  33.1% -lh5- 3358 Nov  2 00:37 nextvi-2.1/README
[generic]                 1170    2653  44.1% -lh5- b111 Nov  2 00:37 nextvi-2.1/readonly.patch
[generic]                  737    1520  48.5% -lh5- 6a79 Nov  2 00:37 nextvi-2.1/record_input.patch
[generic]                 5108   16656  30.7% -lh5- b44a Nov  2 00:37 nextvi-2.1/regex.c
[generic]                  197     300  65.7% -lh5- c7d6 Nov  2 00:37 nextvi-2.1/reindex.sh
[generic]                  153     232  65.9% -lh5- a3b4 Nov  2 00:37 nextvi-2.1/release.sh
[generic]                 3704   10230  36.2% -lh5- 70da Nov  2 00:37 nextvi-2.1/remove_vla_cliterals.patch
[generic]                 3201    9750  32.8% -lh5- affa Nov  2 00:37 nextvi-2.1/ren.c
[generic]                 3657   10893  33.6% -lh5- e64b Nov  2 00:37 nextvi-2.1/rstr.patch
[generic]                 2081    4906  42.4% -lh5- 122e Nov  2 00:37 nextvi-2.1/stdin_pipe.patch
[generic]                 2466    6850  36.0% -lh5- c422 Nov  2 00:37 nextvi-2.1/term.c
[generic]                 2172    5830  37.3% -lh5- 5131 Nov  2 00:37 nextvi-2.1/threaded_search.patch
[generic]                 8783   28275  31.1% -lh5- 734a Nov  2 00:37 nextvi-2.1/uc.c
[generic]                  847    2264  37.4% -lh5- 0bac Nov  2 00:37 nextvi-2.1/undojump.patch
[generic]                 1751    5471  32.0% -lh5- a401 Nov  2 00:37 nextvi-2.1/undo_branches.patch
[generic]                14175   40651  34.9% -lh5- de2b Nov  2 00:37 nextvi-2.1/vi.1
[generic]                13028   42491  30.7% -lh5- 8c5f Nov  2 00:37 nextvi-2.1/vi.c
[generic]                 5296   16211  32.7% -lh5- fc4a Nov  2 00:37 nextvi-2.1/vi.h
[generic]               105819  226712  46.7% -lh5- 00a2 Nov  7 02:14 nextvi-2.1/vi
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        49 files  242510  624172  38.9%            Nov  8 02:09
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>