### 2.7 More Advanced Features

#### 2.7.1 UTF-8 support

UTF-8 is a character encoding that can represent the whole ISO 10646 character set—two billion characters! `ne` can load and manipulate UTF-8 files transparently, in particular on systems that provide UTF-8 I/O. See UTF-8 Support.

#### 2.7.2 Bookmarks

It often happens that you have to browse through a file, switching frequently between a small number of positions. In this case, you can use bookmarks. There are up to ten bookmarks per document, each designated by a single digit, with the default being ‘`0`’. You can set them with the `SetBookmark` command, and you can return to any set bookmark with the `GotoBookmark` command. Also, `ne` sets an automatic bookmark (designated by ‘`-`’) to your current position in a document whenever you use the `GotoBookmark` command. You can use this automatic bookmark to return to that previous location with a `GotoBookmark -` command. Doing so will reset the automatic bookmark, so that subsequent `GotoBookmark -` commands will switch between those two locations. See SetBookmark, GotoBookmark, and UnsetBookmark. Note that in the default configuration no key binding is assigned to these commands. If you use them frequently, you may want to change the key bindings. See Key Bindings.

#### 2.7.3 Automatic Completion

The `AutoComplete` command helps you extend a given prefix with matching words from your open documents. You can specify the `AutoCompete` command and prefix on the command line, or you can enter the prefix directly into your document and activate the `AutoComplete` command. With the cursor at the right end of your prefix, activate the `AutoComplete` command by entering either the <Escape>-<Tab> or the <Escape>-<I> key sequence, or the `<Control>-<META>-<I>` key combination, or by selecting `AutoComplete` from the `Extras` menu.

If the prefix can be extended unambiguously, the extension will be immediately inserted into your document (this is the case, for instance, if only one word matches the prefix), and a message will tell you whether the extension is an actual word or just the longest possible extension (for instance, if you expand ‘`fo`’ and your document contains ‘`foobar`’ and ‘`foofoo`’ then the partial match will be ‘`foo`’). Otherwise, `ne` presents you with a list of all matching words: choose the one you want and press <Return>, to select it; otherwise, press <f1>, <Escape> or <Escape>-<Escape> to cancel the completion operation.

The current state of the `CaseSearch` flag determines whether the prefix match is case sensitive. Any matching words which only exist in other open documents but not the current one are displayed in bold with an asterisk; think of that as a warning that if you select one of these bold words you will introduce a new word into your current document. Plain words already exist somewhere in your current document. See AutoComplete, and CaseSearch.

#### 2.7.4 MS-DOS files

`ne` will detect automagically the presence of MS-DOS line terminators (CR/LFs) and set the CR/LF flag. When the file will be saved, the terminators will be restored correctly. You can change this behaviour using the `PreserveCR` and `CRLF` commands. See PreserveCR, and CRLF.

#### 2.7.5 Binary files

`ne` allows a simplified form of binary editing. If the binary flag is set, only NULLs are considered newlines when loading or saving. Thus, binary files can be safely loaded, modified and saved. Inserting a new line or joining two lines has the effect of inserting or deleting a NULL. Be careful not to mismatch the state of the binary flag when loading and saving the same file.

#### 2.7.6 File requester

The `NoFileReq` command deactivates the file requester. It is intended for “tough guys” who always remember the names of their files and can type them at the speed of light (maybe with the help of the completer, which is activated by the <Tab> key; see The Input Line).

#### 2.7.7 Executing un*x commands

There are three ways to execute un*x commands from within `ne`. The `System` command can run any un*x command; you will get back into `ne` as soon as the command execution terminates. See System. The `Through` (`<Meta>-T`) command (which can be found in the ‘`Edit`’ menu), however, is much more powerful; it cuts the current block, passes it as standard input to any un*x command, and pastes the command's output at the current cursor position. This provides a neat way to pass a part of your document through one of un*x's many filter commands (commands that read from standard input and write to standard output, e.g., `sort`). See Through. Finally, you can use the `Suspend` (`<Control>-Z`) command to temporarily stop `ne` and return to your command shell. See Suspend.

#### 2.7.8 Advanced key bindings

For an exhaustive list of the remaining features of `ne`, see Reference.