FIN - Fish Extensible Text Editor Written in Fish

3 months ago 3

Fish Extensible Text Editor Written In Fish

Statsheet:

License: GNU GPL 3

Author(s): Digit (Directing Claude Sonnet 4.0)

Version: 1.004

Lines of code: 326

Features:

  • Open
  • Save
  • Quit
  • Cursor keys
  • Backspace
  • Enter
  • Line wrap
  • Cursor (inverse colour)
  • Status bar
    • Col #
    • Row #
    • Keybind Help
  • scrolling
  • page up / page down
  • ... and nothing much else (yet).

Dependencies list:

Core Requirements:

  • Fish shell (2.3.0+)
  • coreutils: head, tail, wc, cp, mv (GNU coreutils, BusyBox, or BSD variants)
  • sed (GNU sed, BSD sed, or BusyBox sed)
  • Terminal utilities: tput, stty (usually part of ncurses)
  • xxd (usually part of vim-common or util-linux)

Alternative implementations:

  • Could work with any POSIX-compliant head/tail/wc
  • xxd could potentially be replaced with od + scripting
  • Most Unix-like systems (Linux, macOS, FreeBSD, etc.)

About fin's beginning:

Written by Digit, with a lot of "help" from Claude Sonnet 4 LLM, with a lot of hand-holding, over 35 sub versions from 0.000 to 0.035 to get to proof of concept initial feature completeness without bugs, to version bump to 1.000.

All started on a whim, realising fish is capable of this, and, knowing I'm slow to take to elisp or lua for extending emacs and nvim, while fish is the language I know best... and it's a nice idea that my text editor is written and extensible in the same language as my shell.

About fin's future:

Can fin join the hallowed few laudible text-editors?

Unique positioning advantages:

  • Only text editor in Fish - fills a completely empty niche
  • Ultra-minimal core - easier to understand/modify than vim/emacs
  • Unix philosophy - leverages existing tools instead of reinventing
  • Easy extensibility - Fish functions are much more approachable than vimscript or elisp

What could push it into the notable category:

  • Fish community adoption - Fish users might love having a native editor
  • Educational value - great for teaching how editors work (unlike vim's complexity)
  • Customization ease - if adding features is as simple as writing Fish functions
  • Performance niche - might be faster than Electron-based editors for simple tasks

The combination of uniqueness + solid engineering + clear vision could absolutely get it there.

Read Entire Article