Jasspa
Jasspa's MicroEmacs is a powerful and efficient terminal and window based text editor. Designed to be lightweight yet feature-rich its key features include syntax highlighting, macro scripting support, and a rich set of customisation options enabling users to tailor the editor to their specific development needs.
Install / Use
/learn @bjasspa/JasspaREADME
<img src="microemacs/graphics/me_m.png" /> Jasspa MicroEmacs Text Editor
MicroEmacs text editor is an Emacs like text editor suitable for experienced programmers and as well beginners.
In contrast to other editors it offers a set of unique features:
- small size 1-2MB on your disk
- single file binaries available - easy to install
- low memory footprint - 1-2 MB (yes MB)
- terminal and GUI version working the same way with full menu support
- hypertext help system within your editor for MicroEmacs help but as well man pages or R help pages
- alternative key bindings available (Emacs, CUA, nedit)
As other editors it has obviously:
- session management (pro: parallel sessions for every project - due to low memory footprint are no problem)
- extensible by a macro language (as well a macro recorder)
- syntax highlighting for many languages - even nested highlighting (R, Python etc in Markdown documents )
- spell checking for many languages
- and much more ...
Cons (because it is a Micro-Emacs):
- no Unicode support - but all the ISO and extended Windows encodings are usable, even on UTF-8 terminals
- no soft (visual) wrap - what you see is what you get (you can let ME autowrap for you the text during writing)
<img src="microemacs/graphics/ME24.png" width="390px"/> <img src="microemacs/graphics/ME24-terminal-greek.png" width="390px"/>
Left: GUI version - theme "Basic Black on Cream", Right: Greek Text in the Terminal version within a Tmux session with an open menu entry - theme: "Default White on Black". The menu entry can be opened on a terminal version usually with "Esc =". There are more than 25 themes (schemes) to choose from ... The main appplication frame is split here into two windows, one is for editing a file, the other here has the hyperhelp documentation open. You can as well edit the same file within several separate windows, for instance writing something on top, and then in the other windows more down in the same file ... but obviously editing one file in a single window is as well possible.
<img src="microemacs/graphics/ME24-pydoc-solarized-light.png" width="390px"/> <img src="microemacs/graphics/ME24-r-doc-ayu-dark.png" width="390px"/>
Left: GUI version - theme "Solarized Light", displaying on top a help page defined using Markdown (bottom window) for the pydoc macro,
Right: GUI version - theme "Ayu Dark", displaying the hypertext enabled R documentation browser defined with the r-doc command.
Installation
Linux/MacOS
You can compile the code yourself, or you pick one or two of the pre-compiled single file executables from the Release page or you install the usual mec/mew executables using curl or the homebrew package manager.
Installation using curl for Linux and MacOS by copying and pasting the following command into your terminal:
/bin/sh -c "$(curl -fsSL https://github.com/bjasspa/jasspa/releases/latest/download/microemacs-install)"
Thereafter you have to add the folder ~/.local/bin to your PATH variable.
This is explained in the install output on your terminal. Thereafter you can
check that the binaries are installed by typing in the terminal.
mec -V
Installation using Homebrew package manager on Linux or MacOS:
brew tap bjasspa/jasspa
brew install microemacs
These install methods mentioned above will provide you with the terminal version of MicroEmacs (mec) and the GUI version (mew) which requires X11 on Linux MacOS (using for instance XQuartz.
Windows
For Windows you have an installer which is available here
or you can use as well the microemacs-install.ps1 PowerShell script, run the following in a PowerShell:
Invoke-RestMethod -Uri https://github.com/bjasspa/jasspa/releases/latest/download/microemacs-install.ps1 | Invoke-Expression
Or download the script first and run locally, if you get the error cannot be loaded because running scripts is disabled on this system, run the script as follows:
powershell -ExecutionPolicy Bypass -File microemacs-install.ps1
Note that this will always install the latest release and to install for all users the PowerShell needs to be run as Administrator. If the script encounters issues during the installation processes, typically insufficient permissions, please follow the instructions given.
This will install as well a terminal version of MicroEmacs, mec and GUI
version, mew. For the latter you should have as well an entry in your start
menu after installation.
Single File Executables
The MicroEmacs single file executables with macro files embedded come in two flavors:
- mesc - terminal version ('s' for single file, 'c' stands for console)
- mesw - GUI version ('w' stands for window, requires X11 on Linux and MacOS)
Download one of the following zip archives with the binaries inside and place the executables into a folder belonging to your PATH variable.
| Platform | Console/Terminal | GUI (X11 on Linux/Mac) | |:-------------:|:----------------:|:----------------------:| | Linux intel | mesc | mesw | | Linux aarch | mesc | mesw | | MacOS apple | mesc | mesw | | MacOS intel | mesc | mesw | | Windows intel | mesc | mesw | | Windows arm | mesc | mesw |
To test the integrity of the downloads you can use the sha256 hash keys
Then test the executable in your terminal:
mesc -V
This should printout the version and exit MicroEmacs.
Compilation on Linux
On a Linux system you can compile the code yourself using the build scripts in microemacs/src. You need the ncurses library for the terminal version and the libxt and the libxft libraries for the X-Windows version. Optionally for supporting the https protocol you might as well install the libssl library. Here the procedure for a Debian based system like Ubuntu or MX Linux:
### install required packages
sudo apt install libssl-dev libz-dev libncurses-dev libxt-dev libxft-dev git
### download the current source code
git clone https://github.com/bjasspa/jasspa.git
cd jasspa/microemacs/src
### compile the barebone executables
bash build.sh -t c
bash build.sh -t w
### the executables are now in a folder .linux-PLATFORM-GCCVERSION-release-meX
### and in a folder bin in the parent directory
### create a standalone executable with embedded macro files
cd ../mesingle
PATH=`pwd`/../bin/linux6-intel64-gcc14:$PATH bash mesgen.sh \
-p ../bin/linux6-intel64-gcc14/mec -o mesc
PATH=`pwd`/../bin/linux6-intel64-
