DOKK / manpages / debian 11 / e-wrapper / e.1.en
e(1) General Commands Manual e(1)

e - invoke your editor, with optional file:lineno handling

e [<editor's options>] <file>[:line] [<file>...]
<pipeline> | e -: [<editor's options>]
<pipeline> | e -:: [<editor's options>]

Programs that mention line numbers in messages have mostly standardized on "file:line: Message" or "file:line:col: Message". Alas, this is not what editors support, which is almost always "+line" "file".

e takes a list of file names, optionally followed with :line, then possibly with :column and/or an additional colon, and gives to your editor. The line numbers are passed as a separate argument "+line" before the file name which is what editors expect.

Alternatively, you can provide file names on the standard input, and specify -: or -:: as the first argument. The former allows file names without line numbers, the latter silently ignores anything not in the expected format.

Examples:

git grep FIXME|e -:
make 2>&1 >/dev/null|grep error:|e -::

This is roughly a shorthand for "e `pipeline|cut -d: -f1-2`".

e is also handy as a general-purpose smart alias for running the editor. If yours has a long name like "jstar" or "emacs", you save four keystrokes on what for a typical Unix user is the most often issued command.

If the environment variable $EDITOR is set, e will use that. Otherwise, it calls sensible-editor, which asks what editor to use then saves your answer. You can run select-editor to get asked again.

2018-08-09 e