Welcome to MorphOS-Storage, a webserver dedicated to MorphOS users. ©2016-2024 Meta-MorphOS.org
Description:Extended version of Atto Emacs
Developer/Porter:Stefan Haubenthal
Short: Extended version of Atto Emacs
Author: Anthony Howe, hughbarney@gmail.com (Hugh Barney)
Uploader: polluks+aminet sdf lonestar org (Stefan Haubenthal)
Type: dev/gg
Version: 2.11
Requires: touch $HOME/femto.rc
Architecture: ppc-morphos

Femto is an extended version of Atto Emacs with a Tiny Lisp extension

# Goals of Femto Emacs

* To be an extendable version of the Atto Emacs editor using a Tiny Lisp
extension language
* Provide a number of useful extension packages written in Tiny Lisp (these
include an interface to **git** (similar to GNU Emacs Magit), a small
version of **dired**, a buffer management menu (**buffer menu**),
**defmacro** allows for a macro to be recorded and invoked using c-x e, and
an interface to **grep**.
* Be easy to understand without extensive study (to encourage further

# What does Femto bring to the party of Text Editors

As far as I know Femto is the only Emacs style editor to provide a macro
recorder that generates usable Lisp code that can then be used to build a
larger, more complex utility. Whilst GNU Emacs has a macro recorder facility
it only allows you to dump out the keystrokes used during macro recording.
Femto does this by writing the lisp code to a text buffer called **macro**.
Though I have tried dozens of text editors over the years (mostly on PCs, but
a few on mini and mainframe computers) I am not aware of any other editor that
works this way. This feature was born out of the principle of keeping a small
editor code written in C and where possible using Lisp to implement new
features. The standard Emacs macro keystrokes [C-x (, C-c ), C-x e] are all
written in Lisp in the file examples/defmacro.lsp. This meant that no special
C code was needed in Femto to know when it was in macro mode or not.

Comparisons with Other Emacs Implementations

Femto has almost the same level of functionality as MicroEmacs 3.10 for a
codebase 1/10 of the size.

Editor Binary BinSize KLOC Files

atto atto 33002 1.9k 10
pEmacs pe 59465 5.7K 16
Esatz-Emacs ee 59050 5.7K 14
femto femto 356399 6.3k 18 **
GNOME GNOME 55922 9.8k 13
Zile zile 257360 11.7k 48
Mg mg 585313 16.5K 50
uEmacs/Pk em 147546 17.5K 34
Pico pico 438534 24.0k 29
Nano nano 192008 24.8K 17
jove jove 248824 34.7k 94
Qemacs qe 379968 36.9k 59
ue3.10 uemacs 171664 52.4K 16 ++
GNUEmacs emacs 14632920 358.0k 186

# Femto Key Bindings
C-A begining-of-line
C-B backward-character
C-D delete-char
C-E end-of-line
C-F forward Character
C-G Abort (at prompts)
C-H backspace
C-I handle-tab
C-J newline
C-K kill-to-eol
C-L refresh display
C-M Carrage Return
C-N next line
C-P previous line
C-R search-backwards
C-S search-forwards
C-U Undo
C-V Page Down
C-W Kill Region (Cut)
C-X CTRL-X command prefix
C-Y Yank (Paste)

M-< Start of file
M-> End of file
M-v Page Up
M-f Forward Word
M-b Backwards Word
M-g goto-line
M-r Search and Replace
M-w copy-region

C-<spacebar> Set mark at current position.

^X^B List Buffers
^X^C Exit. Any unsaved files will require confirmation.
^X^F Find file; read into a new buffer created from filename.
^X^S Save current buffer to disk, using the filename associated with the
^X^W Write current buffer to disk. Type in a new filename at the prompt
^X@ shell-command (prompted for a command which is sent to the shell
^Xi Insert file at point
^X= Show Character at position
^X^N next-buffer
^Xn next-buffer
^Xk kill-buffer
^X1 delete-other-windows
^X2 split-window
^Xo other-window

Home Beginning-of-line
End End-of-line
Del Delete character under cursor
Ins Toggle Overwrite Mode
Left Move left
Right Move point right
Up Move to the previous line
Down Move to the next line
Backspace delete caharacter on the left
Ctrl+Up beginning of file
Ctrl+Down end of file
Ctrk+Left Page Down
Ctrl+Right Page Up

## Copying and moving
C-<spacebar> Set mark at current position
^W Delete region
^Y Yank back kill buffer at cursor
M-w Copy Region

A region is defined as the area between this mark and the current cursor
position. The kill buffer is the text which has been most recently deleted or

Generally, the procedure for copying or moving text is:
1. Mark out region using M-<spacebar> at the beginning and move the cursor to
the end.
2. Delete it (with ^W) or copy it (with M-W) into the kill buffer.
3. Move the cursor to the desired location and yank it back (with ^Y).

## Searching
C-S or C-R enters the search prompt, where you type the search string
BACKSPACE - will reduce the search string, any other character will extend
C-S at the search prompt will search forward, will wrap at end of the
C-R at the search prompt will search backwards, will wrap at start of the
ESC will escape from the search prompt and return to the point of the
C-G abort the search and return to point before the search started

Upload Date:Apr 29 2022
Size:768 KB
Last Comments