### 3.1 Arguments ¶

The main arguments you can give to `ne` are the names of files you want to edit. They will be loaded into separate documents. If you specify `--help` or `-h` anywhere on the command line, a simple help text describing `ne`’s arguments will be printed.

The `+N` option causes `ne` to advance to the Nth line of the next document loaded. This option is fairly common among editors and text display programs like `vi` and `less`. The N itself is optional. Without it, a bare `+` on the command line causes `ne` to advance to the last line of the first document. You can specify a line and column as `+N,M`. Any non-digit can be used to separate the N from the M. As it only affects the next document loaded, it can appear multiple times on the command line.

The `--binary` option causes `ne` to load the next document in binary mode. Binary mode treats the normal line termination characters as any other character and only breaks lines on NULL characters. Like `+N,M`, `--binary` only affects the next document loaded, and it can appear multiple times on the command line. See Binary.

The `--read-only`/`--readonly`/`--ro` option causes `ne` to load the next named file into a read-only document. You can’t modify a read-only document without first taking special action such as turning off the read-only flag. You can still `Save` (Save) a read-only document to a file if the file’s permissions allow it, but `ne` will prompt you before attempting to save a document marked read-only. The `--read-only` option only affects the next document loaded, so it can appear multiple times on the command line. A document’s read-only flag is automatically set when a file is loaded if the corresponding file is not writable (as determined by the `access()` system call) regardless of whether the `--read-only` option is used. See ReadOnly.

The `--no-config`/`--noconfig` option skips the reading of the key bindings and menu configuration files (see Configuration). This is essential if you are experimenting with a new configuration and you make mistakes in it.

The `--prefs extension` option makes `ne` load a specified set of automatic preferences, that is, those associated with the provided extension, instead of the default ones, before loading the first file. It can be useful, for instance, when piping a file into `ne` or when reading from named pipes, as in those cases there is no file extension from which `ne` can guess the correct preferences. Note that preferences are cloned from the current document when a new document is created, so if you open a number of files without extension this option will propagate to all of them.

The `--macro filename` option specifies the name of a macro that will be started just after all documents have been loaded. A typical macro would move the cursor to a certain line.

The `--keys filename` option and the `--menus filename` option specify a name different from the default one (`.keys` and `.menus`, respectively) for the key bindings and the menu configuration files.

For key bindings, `ne` loads system wide files first, then those in your `~/.ne` directory, and finally those in the current directory. Key bindings loaded later may override those loaded previously. In each location, `~/.ne` will first look for a file named `.keys` (or whatever base name you specify with the `--keys` option), then a file with the same name followed by a dash and the value of your `TERM` environment variable. This is how you can create key bindings specifically for different terminals on a single system.

Menu configuration, unlike key bindings, is not cumulative; `ne` looks first in your `~/.ne` directory possibly followed by the system wide global directory for a menu configuration file and loads only the first one it finds, if any.

The `--ansi` and the `--no-ansi`/`--noansi` options manage `ne`’s built-in ANSI sequences. Usually `ne` tries to retrieve from your system some information that is necessary to handle your terminal. If for some reason this is impossible, you can ask `ne` to use a built-in set of sequences that will work on many terminals using the `--ansi` option (to be true, `ne` can be even compiled so that it uses directly the built-in set, but you need not know this). If you want to be sure (usually for debugging purposes) that `ne` is not using the built-in set, you can specify `--no-ansi`.

The `--no-syntax` option disables `ne`’s normal syntax highlighting capability. For most editing situations, this would be unnecessary, but for extremely large files it may be helpful. Syntax highlighting incurs small memory usage and processor overhead penalties for each line of text. The `--no-syntax` option eliminates that overhead. Note that files longer than ten million bytes will have syntax highlighting disabled by default, but it is possible to re-enable it. See Syntax Highlighting.

The `--utf8` and `--no-utf8` options can be used to force or inhibit UTF-8 I/O, overriding the choice imposed by the system locale. Note, however, that in general it is more advisable to set the `LANG` environment variable to a locale supporting UTF-8 (you can usually see the locale list with `locale -a`). See UTF-8 Support.

If you need to open a file whose name starts with ‘`--`’, you can put ‘`--`’ before the filename, which will skip command recognition for the next word.

You can use I/O redirection to pipe the output of other commands into your first document. For example,

      ls -l | ne file1.txt --read-only file2.txt

will open three documents: an unnamed document containing the output of the `ls -l` command, the contents of `file1.txt`, and the contents of `file2.txt` with the read-only flag set.

It’s possible to apply the `--binary`, `--read-only`, and `+N,M` options to the piped unnamed document by referencing it as a single `-`. Only the first such file name will reference the piped document (even if it isn’t the first file name on the command line). Subsequent dashes will be considered normal file names. If you want the first dash to be treated like a normal file instead of a reference to the piped document, prefix the dash with ‘`--`’. Consider these two command lines:

      ls -l | ne --read-only +3,8 - file1.txt -
      ls -l | ne file1.txt -- - --read-only +3,8 -
      ls -l | ne --binary file1.txt --read-only -- -

All three of these commands open `ne` with three documents: the output of the `ls -l` command will be in the first unnamed document, the contents of `file1.txt` will be in the second document, while the third document will contain the contents of the file `-` (or an empty document with that name if there is no such file). The first and second commands do exactly the same thing: the unnamed first document is marked read-only and the cursor is positioned on line 3 column 8, while the other two document are opened normally. In the case of the third command, `file1.txt` is opened in binary mode, the document named `-` is marked read-only, while the first, unnamed, document—which is not referenced on the command line—with the output from `ls -l` is opened normally.

Finally, `ne` has a global directory where the system administrator can store macros, default preferences, and syntax definitions for all users of the system. The location of this directory is defined when `ne` is built, but you can override it by creating and exporting the `NE_GLOBAL_DIR` environment variable prior to invoking `ne`. If you load no files when you start `ne`, or if you invoke the `About` command, it will display a splash screen. The last line on that screen shows the global directory `ne` is using, if it exists, or an error message otherwise.