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

dev/gg/femto.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:Extended version of Atto Emacs
Author:Anthony Howe, hughbarney at 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
Date:2022-04-23
Download:http://aminet.net/dev/gg/femto.lha - View contents
Readme:http://aminet.net/dev/gg/femto.readme
Downloads:294

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

# 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
  experimentation).


# 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
          buffer
    ^X^W  Write current buffer to disk. Type in a new filename at the prompt
    ^X at    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
copied.

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
                it
    C-S at the search prompt will search forward, will wrap at end of the
        buffer
    C-R at the search prompt will search backwards, will wrap at start of the
        buffer
    ESC will escape from the search prompt and return to the point of the
        match
    C-G abort the search and return to point before the search started


Contents of dev/gg/femto.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[generic]                 2120    6415  33.0% -lh5- 2130 Apr 23 13:54 femto/buffer.c
[generic]                 1605    3606  44.5% -lh5- e2ca Apr 23 13:54 femto/CHANGE.LOG.md
[generic]                 5581   18898  29.5% -lh5- c621 Apr 23 13:54 femto/command.c
[generic]                  917    1995  46.0% -lh5- d90a Apr 23 13:54 femto/complete.c
[generic]                 1134    2764  41.0% -lh5- db15 Apr 23 13:54 femto/data.c
[generic]                 2910    8052  36.1% -lh5- 54ad Apr 23 13:54 femto/display.c
[generic]                   32      32 100.0% -lh0- 6492 Apr 23 13:54 femto/docs/4utf8.txt
[generic]                  456    1010  45.1% -lh5- 34b9 Apr 23 13:54 femto/docs/commands.txt
[generic]                  230     406  56.7% -lh5- fa90 Apr 23 13:54 femto/docs/git.txt
[generic]                  606    1539  39.4% -lh5- 2a91 Apr 23 13:54 femto/docs/hltest.c
[generic]                  506     714  70.9% -lh5- 22ca Apr 23 13:54 femto/docs/simplified_chinese.txt
[generic]                  656    1196  54.8% -lh5- 27c8 Apr 23 13:54 femto/docs/TODO.txt
[generic]                 6041   14052  43.0% -lh5- 91e6 Apr 23 13:54 femto/docs/UTF8.txt
[generic]                 1765    6135  28.8% -lh5- 29e0 Apr 23 13:54 femto/examples/bufmenu.lsp
[generic]                  702    2456  28.6% -lh5- db48 Apr 23 13:54 femto/examples/defmacro.lsp
[generic]                 3623   14783  24.5% -lh5- 5e82 Apr 23 13:54 femto/examples/dired.cmd
[generic]                 1246    3970  31.4% -lh5- dc7d Apr 23 13:54 femto/examples/dired.lsp
[generic]                 1965    5632  34.9% -lh5- 4a1f Apr 23 13:54 femto/examples/femto.rc
[generic]                   90     168  53.6% -lh5- 10b9 Apr 23 13:54 femto/examples/fib.lsp
[generic]                 1989    6957  28.6% -lh5- ce7d Apr 23 13:54 femto/examples/git.lsp
[generic]                  394    1101  35.8% -lh5- 998b Apr 23 13:54 femto/examples/grep.lsp
[generic]                  240     388  61.9% -lh5- 8e60 Apr 23 13:54 femto/examples/hex.lsp
[generic]                  166     395  42.0% -lh5- 365c Apr 23 13:54 femto/examples/lists.lsp
[generic]                 1539    4793  32.1% -lh5- 159d Apr 23 13:54 femto/examples/oxo.lsp
[generic]                  533    1215  43.9% -lh5- 48a9 Apr 23 13:54 femto/examples/prompt.lsp
[generic]                  196     450  43.6% -lh5- 97f0 Apr 23 13:54 femto/examples/startup.lsp
[generic]                  707    1849  38.2% -lh5- f639 Apr 23 13:54 femto/examples/testfunc.lsp
[generic]                 2660    8205  32.4% -lh5- 07f3 Apr 23 13:54 femto/funcmap.c
[generic]                 1690    4976  34.0% -lh5- 8bba Apr 23 13:54 femto/gap.c
[generic]                 4381   15404  28.4% -lh5- 3b46 Apr 23 13:54 femto/header.h
[generic]                  656    2248  29.2% -lh5- c9b6 Apr 23 13:54 femto/hilite.c
[generic]                 3385   12233  27.7% -lh5- 1b0a Apr 23 13:54 femto/key.c
[generic]                14026   58479  24.0% -lh5- 5265 Apr 23 13:54 femto/lisp.c
[generic]                 1616    3548  45.5% -lh5- 34d5 Apr 23 13:54 femto/main.c
[generic]                  488    1562  31.2% -lh5- b879 Apr 23 13:54 femto/makefile
[generic]                 7367   20383  36.1% -lh5- 7f1e Apr 23 13:54 femto/README.md
[generic]                 1274    3027  42.1% -lh5- b20b Apr 23 13:54 femto/replace.c
[generic]               198901  198901 100.0% -lh0- 0826 Apr 23 13:54 femto/screenshots/femto-femtorc.jpg
[generic]               142759  142759 100.0% -lh0- c77c Apr 23 13:54 femto/screenshots/femto-hilite.png
[generic]                90113   90113 100.0% -lh0- 034c Apr 23 13:54 femto/screenshots/femto-lisp.jpg
[generic]                36963   36963 100.0% -lh0- 18fd Apr 23 13:54 femto/screenshots/femto-oxo.jpg
[generic]                98108   98108 100.0% -lh0- cf49 Apr 23 13:54 femto/screenshots/femto-startup.jpg
[generic]                  913    2517  36.3% -lh5- 20d5 Apr 23 13:54 femto/search.c
[generic]                 3885   13327  29.2% -lh5- 9d5e Apr 23 13:54 femto/undo.c
[generic]                  655    1289  50.8% -lh5- 8533 Apr 23 13:54 femto/utils.c
[generic]                 1434    4250  33.7% -lh5- 339d Apr 23 13:54 femto/window.c
[generic]               135423  409048  33.1% -lh5- 6b37 Apr 23 14:39 femto/femto
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        47 files  784646 1238311  63.4%            Apr 24 01:38

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>