Joe
Installation
Linux/Ubuntu/Debian
# Using apt package manager
sudo apt update
sudo apt install joe
# Using yum (Fedora/CentOS)
sudo yum install joe
# Using pacman (Arch Linux)
sudo pacman -S joe
# Building from source
wget https://sourceforge.net/projects/joe-editor/files/joe/4.6/joe-4.6.tar.gz
tar -xzf joe-4.6.tar.gz
cd joe-4.6
./configure
make
sudo make install
macOS
# Using Homebrew
brew install joe
# Using MacPorts
sudo port install joe
# Building from source
wget https://sourceforge.net/projects/joe-editor/files/joe/4.6/joe-4.6.tar.gz
tar -xzf joe-4.6.tar.gz
cd joe-4.6
./configure
make
sudo make install
Verify Installation
# Check version
joe --version
# Verify binary location
which joe
# Show help information
joe --help
Basic Usage
Opening Files
# Open a single file
joe filename.txt
# Open multiple files
joe file1.txt file2.txt file3.txt
# Open file at specific line
joe +10 filename.txt
# Open file for read-only
joe -readonly filename.txt
# Open with specific mode
joe -wordstar filename.txt # WordStar compatible keys
joe -pico filename.txt # Pico compatible keys
joe -emacs filename.txt # Emacs compatible keys
Exiting Joe
# While in editor, press Ctrl+K then X (WordStar mode)
# Or press Ctrl+C in command mode
# Quit without saving
# Ctrl+K Q (abandon changes)
# Save and quit
# Ctrl+K X (save current file and exit)
Editing Commands
WordStar Key Bindings (Default)
# Movement
Ctrl+A # Move cursor to beginning of line
Ctrl+E # Move cursor to end of line
Ctrl+D # Move cursor right one character
Ctrl+S # Move cursor left one character
Ctrl+X # Move cursor down one line
Ctrl+W # Move cursor up one line
Ctrl+F # Move cursor right one word
Ctrl+B # Move cursor left one word
# Page operations
Ctrl+C # Page down
Page Down # Page down alternative
Ctrl+R # Page up
Page Up # Page up alternative
# Jump to specific location
Ctrl+J # Go to specific line (prompts for line number)
# File operations
Ctrl+K D # Delete current line
Ctrl+K Y # Delete entire line and move up
Ctrl+T # Delete word to the right
Editing Operations
# Insert/Overwrite
Ctrl+V # Toggle insert/overwrite mode
# Delete operations
Ctrl+H # Delete character to left (backspace)
Ctrl+G # Delete character at cursor
Delete # Delete character to right
# Selection and copying
Ctrl+K B # Mark beginning of selection block
Ctrl+K K # Mark end of selection block
Ctrl+K C # Copy selected block
Ctrl+K V # Paste block
Ctrl+K X # Cut (delete) selected block
Ctrl+K W # Write block to file
# Undo/Redo
Ctrl+U # Undo last change
Ctrl+_ # Redo (if implemented)
Search and Replace
# Search
Ctrl+F # Find text
Ctrl+L # Find next occurrence
Ctrl+K F # Find and replace
# Search options (in search prompt)
# ? - previous occurrence
# / - next occurrence
# A - replace all
# R - replace current
# N - skip this occurrence
Advanced Features
Multiple Windows
# Split window
Ctrl+K O # Open file in new window
Ctrl+K P # Switch between windows
# Manage windows
Ctrl+K 1 # Show only current window
Ctrl+K 2 # Split into two windows
Ctrl+K N # Open new file in new window
Syntax Highlighting
# Set syntax highlighting mode
Ctrl+T S # Select syntax highlighting type
# Common modes: C, HTML, JAVA, PYTHON, PERL, SHELL
# Supported file types (auto-detected):
# .c, .h - C source
# .java - Java
# .py - Python
# .pl - Perl
# .sh - Shell script
# .html, .htm - HTML
Status and Help
# Display help
Ctrl+K H # Show context help
Ctrl+K ? # Show key bindings
# View file status
Ctrl+I S # Show current file status
# Displays: filename, line number, column, file size
# Show line numbers
Ctrl+T N # Toggle line number display
Configuration
joerc File
# Location: ~/.joerc or /etc/joe/joerc
# Copy default configuration
cp /etc/joe/joerc ~/.joerc
# Edit configuration
joe ~/.joerc
# Common settings:
# -mid - Message in window, not in bar
# -nolinesl - Don't show line numbers
# -wordwrap - Enable word wrapping
# -autoindent - Auto-indentation
# +options - Enable option
# -options - Disable option
Custom Configuration
# ~/.joerc example configuration
-wordwrap
-autoindent
-nolinesl
# Display options
-mid
-mouse
# Tab and indentation
-tab 4 # Tab width = 4
-indentc 4 # Indentation = 4 spaces
# Line wrapping column
-lmargin 0
-rmargin 70 # Wrap at column 70
Keyboard Shortcuts Reference
| Shortcut | Action |
|---|---|
| Ctrl+K X | Save and exit |
| Ctrl+K Q | Quit without saving |
| Ctrl+K S | Save file |
| Ctrl+K D | Delete line |
| Ctrl+F | Find |
| Ctrl+K F | Find and replace |
| Ctrl+L | Find next |
| Ctrl+A | Go to line start |
| Ctrl+E | Go to line end |
| Ctrl+W | Page up |
| Ctrl+C | Page down |
| Ctrl+U | Undo |
| Ctrl+K B | Mark block start |
| Ctrl+K K | Mark block end |
| Ctrl+K C | Copy block |
| Ctrl+K V | Paste block |
Workflow Examples
Basic Text Editing
# 1. Open file
joe myfile.txt
# 2. Use Ctrl+A/Ctrl+E to navigate within line
# 3. Use Ctrl+W/Ctrl+C to navigate between pages
# 4. Use Ctrl+F to search for text
# 5. Use Ctrl+K F to find and replace
# 6. Use Ctrl+U to undo mistakes
# 7. Use Ctrl+K X to save and exit
Code Editing
# 1. Open source file
joe program.c
# 2. Enable syntax highlighting: Ctrl+T S (select C)
# 3. Use Ctrl+I S to see line numbers and file info
# 4. Navigate with Ctrl+D/Ctrl+S for character movement
# 5. Use Ctrl+K B and Ctrl+K K to mark code blocks
# 6. Copy blocks with Ctrl+K C
# 7. Find function names with Ctrl+F
# 8. Save with Ctrl+K S
Bulk Find and Replace
# 1. Open file: joe logfile.txt
# 2. Invoke Find and Replace: Ctrl+K F
# 3. Enter search term when prompted
# 4. Enter replacement text when prompted
# 5. Use 'A' to replace all occurrences
# 6. Save with Ctrl+K S
Best Practices
- Use Ctrl+K S frequently to save work (AutoSave not available)
- Enable auto-indentation for code editing with -autoindent
- Use syntax highlighting for source code (Ctrl+T S)
- Mark and copy blocks efficiently with Ctrl+K B, K, C
- Use Ctrl+J to jump directly to specific line numbers
- Create custom ~/.joerc for preferred settings
- Learn WordStar key bindings for faster editing
- Use Ctrl+F for quick text searches in large files
- Utilize tabs (Ctrl+Tab) for indentation in code
- Keep backups since Joe doesn’t have automatic recovery
Additional Resources
Last updated: 2026-03-30