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.