joe
Edit text files
TLDR
Open a new file in JOE
Open a specific file
Open a specific file, positioning the cursor at the specified line
Open a specific file in read-only mode
SYNOPSIS
joe [options] [file ...]
jmacs [options] [file ...]
jstar [options] [file ...]
rjoe [options] [file ...]
PARAMETERS
-wordwrap
Toggles word wrap mode on for the current buffer.
-autoindent
Toggles auto-indent mode on for the current buffer.
-lightoff
Turns off the cursor and block highlighting, using inverse video instead.
-isearch
Starts the editor in incremental search mode.
-ex-editor
Emulates the ex editor behavior for scripting purposes.
-noxon
Disables XON/XOFF flow control, useful for some terminals.
-nonewlines
Prevents joe from adding a newline character at the end of files if missing.
-help
Displays a summary of command-line options and usage.
-rcfile
Specifies an alternative configuration file to load instead of the default.
-concept
Shows help for a specific concept or keybinding (e.g., 'ctrl-k').
One or more files to open and edit. Multiple files open in separate buffers.
DESCRIPTION
joe (Joe's Own Editor) is a full-featured, user-friendly terminal-based text editor widely available on Unix-like operating systems. It is designed to be intuitive for new users, especially those familiar with WordStar, Turbo C/Pascal, or common PC text editors, due to its familiar control-key commands.
joe offers a rich set of features, including syntax highlighting for many programming languages, multiple open windows (buffers), regular expression search and replace, spell checking, auto-indentation, and customizable key bindings. It supports pipes, filters, and macro recording, making it powerful for both simple text editing and complex programming tasks. joe aims to strike a balance between the simplicity of nano and the power of vi or emacs, providing a comfortable editing environment in the terminal.
CAVEATS
While user-friendly, some advanced features might require consulting the documentation. Its default keybindings, while intuitive for some, might be unfamiliar to users accustomed to vi or emacs out-of-the-box. As a terminal-based editor, it relies on the terminal's capabilities and lacks graphical user interface (GUI) features.
KEYBINDINGS
joe is famous for its intuitive and consistent control-key commands. Many operations start with Ctrl+K (the command prefix), followed by another key. For example, Ctrl+K H brings up help, Ctrl+K F for find, Ctrl+K D for delete line, Ctrl+K W to save a file, and Ctrl+K X to exit. It also supports Ctrl+C for break and Ctrl+Z for undo, similar to common GUI editors.
DIFFERENT MODES
joe can be invoked using different names, which makes it emulate other editors or modes:
jmacs: Emulates Emacs keybindings.
jstar: Emulates WordStar keybindings.
rjoe: A restricted version of joe, often used in locked-down environments, which prevents access to shell commands or file operations outside the current directory.
HISTORY
Joe's Own Editor (joe) was created by Joseph H. Allen and first released in 1988. It was developed to offer a powerful yet intuitive text editing experience on Unix-like systems, filling a niche between simpler editors like ed and the more complex vi or emacs. Its design philosophy centered on providing common PC-style control-key combinations, making it immediately familiar to users coming from DOS or other PC environments (like WordStar or Borland's Turbo series). Over the years, joe has been maintained and updated, gaining features like syntax highlighting, multiple windows, and a robust macro language, solidifying its place as a viable and popular text editor for terminal environments.