LinuxCommandLibrary

joe

Edit text files

TLDR

Open a new file in JOE

$ joe
copy

Open a specific file
$ joe [path/to/file]
copy

Open a specific file, positioning the cursor at the specified line
$ joe +[line] [path/to/file]
copy

Open a specific file in read-only mode
$ joe -rdonly [path/to/file]
copy

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.

SEE ALSO

vim(1), emacs(1), nano(1), ed(1), sed(1), awk(1)

Copied to clipboard