No description
  • Pascal 96.5%
  • C 3.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-03 23:03:12 -05:00
.gitignore Initial commit 2026-08-18 16:27:08 -04:00
dcommon.pas Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
debug.pas Largely complete. There will be bugs, of course. 2026-08-30 15:30:02 -04:00
doption.pas Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
ficwrite Changed save format slightly. It now inserts blank lines between paragraphs. 2026-11-03 23:03:12 -05:00
ficwrite.pas Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
gdoc.pas Changed save format slightly. It now inserts blank lines between paragraphs. 2026-11-03 23:03:12 -05:00
gscreen.pas Added search and replace 2026-09-16 11:37:03 -04:00
gterm-block.inc Largely complete. There will be bugs, of course. 2026-08-30 15:30:02 -04:00
gterm-file.inc Largely complete. There will be bugs, of course. 2026-08-30 15:30:02 -04:00
gterm-help.inc Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
gterm-key.inc Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
gterm-vid.inc Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
gterm.h Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
gterm.pas Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
gtheme.pas Stomped some bugs. Added better help functions, and rcfile support. 2026-11-03 10:11:44 -05:00
LICENSE Create LICENSE 2026-08-30 19:09:37 -04:00
README.md Update README.md 2026-08-31 14:35:01 -04:00

FicWrite

FicWrite is a distraction-free text editor designed specifically for writing fiction.

It runs in a terminal, is written in Free Pascal, and is intended to be portable across platforms. Its interface is deliberately keyboard-oriented and keeps the writer's attention on the text rather than on the editor.

image

Features

  • Terminal-based TUI
  • Cross-platform design
  • Plain-text documents
  • Keyboard-driven editing
  • WordStar-style block operations
  • Paragraph-oriented editing
  • Automatic text reflow

Design

FicWrite is built around a separation between the document and its presentation.

The document model understands paragraphs and cursor positions. The terminal interface handles editing and input, while a separate screen representation handles word wrapping and display. The goal is to keep the editor simple, predictable, and responsive while avoiding unnecessary dependencies on desktop GUI systems.

FicWrite does not require an operating-system clipboard for its normal block operations. Copying a block inserts the copied text at the current cursor position, following the classic WordStar model.

Status

The core editor is functional and has undergone some manual testing, including:

  • Cursor movement at document boundaries
  • Paragraph creation and deletion
  • Empty documents and empty paragraphs
  • Scrolling and word wrapping
  • Terminal resizing
  • Block operations
  • File loading and saving
  • GPM mouse interaction (sketchy at best)
  • Testing with multiple terminal emulators, as well as Linux tty.

Building

FicWrite is written in Pascal and is currently developed using:

  • Free Pascal Compiler 3.2.2
  • Linux
  • Terminal-based development environment

A basic build can be performed with:

fpc ficwrite.pas

The source is intended to remain portable rather than being tied to a particular IDE.

License

FicWrite is free software released under the GNU General Public License, version 3.

See LICENSE for the complete license.


FicWrite: writing without the furniture.