Skip to content

An extension to uemacs p/K 4.015 which makes the bottom line a minibuffer. Plus more...

Notifications You must be signed in to change notification settings

original-birdman/nuemacs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is an extension to the uEmacs/pK 4.0.  That was  obtained  by:  git
clone  git://git.kernel.org/pub/scm/editors/uemacs/uemacs.git  uemacs in
early Feb 2017.  I wasn't working in git at the time, so didn't fork it.
In the end I put all of that code into my own local git and started from
there.  So the original 4.015 branch is just that.  Then I  uploaded  it
to github, but didn't want to go back to a fork and have to start again.

The main extension is to add code which had  been  put  into  3.9e  many
years ago to make the bottom line (modeline) into a minibuffer - you can
use  many uemacs commands to move around, delete, yank etc.  You can set
modes (including Phon  mode)  in  it.   It  handles  filename  expansion
(ctlI/tab),  albeit  in  a  different  manner  to 4.015.  That code also
handles environment variable expansion.

It also now has improved utf8 character class/property support, which
has been done by making use of the Julia Lang utf8proc library.  As a
result this uemacs is now DEPENDENT ON that library!
See the PREREQUISITE file.

Other changes so far made are:
  o Make some things user-configurable in start-up files such as
    * the definition of "end of sentence" characters,
    * how twiddle and forward word work (ggr-mode)
  o Fix the display of "binary files" (where ^X and \yy are used),
  o Handle utf8 character strings in the message/minibuffer line and the
    modeline.
  o Better handling of utf8 strings (zero/double-width character
    handling).
  o Add all options to the usage() output, and handle command-line
    options better.
  o Enable ctl-Q and ctl-S as commands (rather than XON/XOFF).
  o Allow user-created procedures to be bound directly to keys (without
    needing to use one of the 40 numbered macros), and make the
    key-table dynamically assigned, so that it is no longer a limited
    size.
  o Added horizontal scrolling (from 3.10e).
  o Changed file encryption so it now encrypts all bytes, not just
    ASCII ones. You can (indeed, have to) set various options for the
    encryption algorithm to use, for compatibility with various other
    builds.
    You may now set a global encryption key, rather than a per-buffer
    one.
  o Input and output now buffered into an 8kB block, significantly
    speeding up file processing,
  o Keyboard macros are also collected as commands in a buffer rather
    than just as keystrokes. This can be modified and saved to file.
    Its execution is bound to ^XV in the standard uemacs.rc file.
  o Run any file-hooks (and file-hooks-<<sfx>>) user macros when a file
    is read in
  o Added a "Phon" mode, to allow input of non-ASCII characters with an
    ASCII keyboard using a lookup table mapping.
    Czech and Russian tables are provided.
  o Added a set of ring buffers for each of search and replace string.
    You can move back and forward through the last 10 by using
    previous-window/next-window when searching.
    You can insert the currently-selected default into the search buffer
    (^X^I)
  o Added a set of kill-buffers for the last deletes.
    If you yank (^Y) you can then do yank_prev_killbuf (Esc-Y) to change
    that yanked text with the previous deletes in turn. Only works if
    you do nothing else after the yank.
    Also works after yank-minibuffer.
    Note that yanking rotates the kill-ring list.
  o Opening a directory will list the files in the directory and let you
    select one to open.
    Requires a user procedure (defined in the standard uemacs.rc) to
    run. This has various sorting options.
    You can also open the parent directory of a file you are viewing.
  o Extended name-completion in prompts to work with file names, buffer
    names, user procedures, phonetic translation tables, function names
    and uemacs environment/user variables.
  o Removed the 1 million line input reading restriction.
  o Greatly extended Magic-mode regex capability for searching and
    enabled it to work with Unicode characters.
  o Simple Space/Return and b/B for forward/backward page scrolling in
    VIEW mode. Also n/p for next-/prevline.
  o Added per-buffer variables for executing buffers and user procedures.
  o More paragraph justifying options, including making numeric or
    definition lists.
  o Allow key-bindings for functions to have a default numeric argument
    "attached".
  o Improved handling of function/keypad escape sequences.
  o Add the ability to mark a function as "one pass", so it will only
    be called once.  User procedures can determine what numeric arg was
    given (so a "one pass" function can determine how to handle this),
    whether this was forced (rather then the default) and which
    current execution loop they are on (useful if not "one pass").
  o Allow a user procedure to be installed as one of the four "internal"
    keybindings.
  o Allow looking for overlapping matches while searching.
    Run-time configurable.
  o Added a sprintf-style function (&ptf) for formatting data.
  o Added a suite of macros for regression testing.
  o Allow forcing modes on/off for all buffers via a command-line
    option.
  o Handle real numbers in macros.
  o Macro debug output can be directed to a //Debug buffer.
  o You can build a standalone version for Linux, either "most" (libm
    and libc are dynamic - allows expansion of ~id/) or "all" (all
    static libraries, no expansion of ~id/ only of ~/).
    Useful for a USB stick connected to a "bare" system.
  o File locking and visual updates as macros run are now run-time
    options rather than compile-time ones.
  o Add the concept of pins, which allow user macros to preserve marks.
  o Save any modified buffers on a crash and, on x64 and arm64,
    optionally (at compile time) produce a stack trace.
  o Remove most string-size limits by using dynamically-allocated buffers.
  o Enable a test version to be built for running with valgrind, to
    check for dynamic memory leaks or overwrites.

NOTE:
The uemacs.rc file re-binds various keys from the standard settings in
the source files. The uemacs.hlp file reflects these re-bindings (since
if the code finds the hlp file, it should have found the rc file).

For LICENCE details see the README file in the archive directory.

About

An extension to uemacs p/K 4.015 which makes the bottom line a minibuffer. Plus more...

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published