LinuxCommandLibrary

wordgrinder

Create and edit text-based documents

TLDR

Start WordGrinder (loads a blank document by default)

$ wordgrinder
copy

Open a given file
$ wordgrinder [path/to/file]
copy

Show the menu
$ <Alt m>
copy

SYNOPSIS

wordgrinder [OPTIONS] [FILE]
wordgrinder --convert INFILE OUTFILE

PARAMETERS

--help
    Displays the help message and exits.

--version
    Displays the program version and exits.

--import
    Imports the specified file into a new WordGrinder document. Supports various formats.

--export
    Exports the currently loaded document to the specified file, inferring format from the extension.

--convert
    Converts an input file to an output file without launching the full editor.

--read-stdin
    Reads document content from standard input instead of a file.

--write-stdout
    Writes the document content to standard output upon exit, often used with --export.

--tty
    Specifies a particular TTY device to use (e.g., /dev/ttyS0).

--no-auto-backup
    Disables the automatic backup feature.

--no-spell-check
    Disables the integrated spell checker.

--no-smart-quotes
    Prevents the automatic conversion of straight quotes to curly (smart) quotes.

--tab-width
    Sets the display width of tab characters (default is 8).

--key-bindings
    Loads custom key bindings from the specified Lua file.

--theme
    Sets the display theme for the editor.

--rcfile
    Loads a custom configuration file instead of the default.

DESCRIPTION

wordgrinder is a full-screen, character-based word processor designed for the Linux terminal. It offers a minimalist, distraction-free writing environment, focusing on content creation rather than complex formatting or graphical elements. While it's primarily a plain text editor, it supports essential text formatting like bold, italic, underline, headings, and lists.

Unlike traditional graphical word processors, wordgrinder does not support images, tables, or complex page layouts. It saves documents in its own proprietary `.wg` format but provides robust import and export capabilities for common formats such as HTML, ODT (OpenDocument Text), Markdown, LaTeX, and plain text.

Its strength lies in its lightweight nature, ability to run on virtually any terminal, and its keyboard-centric interface, making it ideal for writers, programmers, or anyone who prefers a fast, no-frills environment for drafting text.

CAVEATS

Terminal-based: WordGrinder operates entirely within the terminal. It lacks a graphical user interface, limiting mouse interaction and visual fidelity.
Limited Formatting: While it supports basic text styling, it cannot handle complex layouts, embedded images, tables, or advanced typography found in GUI word processors.
Proprietary Format: Documents are natively saved in WordGrinder's `.wg` format, requiring conversion for use with other applications.
Keyboard-Centric: Efficient use relies heavily on keyboard shortcuts, which might require a learning curve for new users.

FILE FORMATS

WordGrinder uses its own internal binary `.wg` format for saving documents. For interoperability, it supports importing and exporting a wide range of formats, including HTML, ODT (OpenDocument Text), Markdown, LaTeX, Troff, and plain text. The `--convert` option is particularly useful for batch conversions.

KEY BINDINGS

The application is highly keyboard-driven. Common operations are mapped to Ctrl and Alt key combinations. For example, Ctrl-S saves the document, Ctrl-X exits, Ctrl-B toggles bold, and Ctrl-I toggles italic. Users can customize key bindings extensively via a Lua configuration file, typically found at `~/.wordgrinder/keybindings.lua`.

CORE PHILOSOPHY

WordGrinder adheres to principles of 'plain text first,' emphasizing content over elaborate presentation. It's designed to 'run anywhere' on virtually any terminal, making it highly portable. Its 'distraction-free' interface, with minimal on-screen clutter, helps writers focus solely on their prose.

HISTORY

Created by David Given and first released around 2011, wordgrinder emerged from a desire for a minimalist, distraction-free word processor that could run efficiently in a terminal environment. Its development focused on core writing functionalities, harking back to the simplicity of early text editors while offering modern conveniences like basic formatting and robust import/export. It appeals to a niche audience of retro computing enthusiasts, minimalists, and writers seeking an unencumbered creative space, and continues to be actively maintained.

SEE ALSO

vim(1), nano(1), emacs(1), pandoc(1), less(1)

Copied to clipboard