← Back to Repository

📝 facsimile - Terminal Text Editor

Terminal text editor written in Fortran with VSCode-style keybindings

v0.9.3

facsimile is a terminal text editor written in modern Fortran featuring VSCode-style keybindings. It provides a familiar editing experience for developers who appreciate the power of keyboard shortcuts combined with the efficiency of terminal-based workflows. Built with a gap buffer architecture and implemented in pure Fortran with ANSI escape sequences.

📦 Installation Options

RHEL/CentOS/Rocky/Alma/Fedora
🚀 RPM Install
# Add repository sudo dnf config-manager --add-repo https://repos.musicsian.com/musicsian.repo # Install package sudo dnf install facsimile # Start editing fac myfile.txt

✨ Key Features

⌨️ VSCode-Style Keybindings

Familiar keyboard shortcuts including Ctrl+C/V/X for clipboard, Ctrl+D for multi-cursor, Ctrl+S to save, and many more.

🎯 Multiple Cursors

Select next match with Ctrl+D or add cursors with Alt+Click for powerful multi-location editing.

📋 System Clipboard

Full clipboard integration with copy, cut, and paste operations that work seamlessly with your system.

🚀 Pure Fortran

Written in modern Fortran with gap buffer text storage for efficient editing performance.

🎬 Usage Examples

Basic Usage: # Edit a file fac filename.txt # Create a new file fac newfile.md # Alternatively use the full name facsimile mycode.f90 Essential Keybindings: Navigation: - Arrow keys: Move cursor - Ctrl+A / Home: Start of line - Ctrl+E / End: End of line - Alt+Left/Right: Word jump - PageUp/PageDown: Page scroll Editing: - Ctrl+C: Copy - Ctrl+X: Cut - Ctrl+V: Paste - Ctrl+D: Select next match - Alt+Up/Down: Move line - Alt+Shift+Up/Down: Duplicate line File Operations: - Ctrl+S: Save - Ctrl+Q: Quit - Ctrl+?: Show help

💡 Why facsimile?

A terminal editor that doesn't force you to learn new shortcuts: ✓ VSCode keybindings you already know ✓ Runs in the terminal for SSH sessions ✓ Multiple cursor support for batch editing ✓ System clipboard integration ✓ Written in Fortran for fun and learning ✓ Gap buffer implementation for efficiency

🔧 Requirements

System Requirements: - Linux x86_64 (RHEL/CentOS/Rocky/Alma/Fedora 9+) - Terminal with ANSI escape sequence support - Mouse support recommended (for Alt+Click cursors) Dependencies: - libgfortran5 - Standard C library (glibc)

🔗 Links

📜 License

facsimile is released under the MIT License. See the GitHub repository for full license details.